C ++ MTL библиотека измерение .h ошибка? - PullRequest
0 голосов
/ 11 мая 2010

Я установил MTL в своей системе Fedora Core 12 x64, но при создании приложения я получаю следующую ошибку:

In file included from /usr/local/include/mtl/matrix.h:41,
                 from /usr/local/include/mtl/mtl.h:40,
                 from ltiSystem.hxx:4,
                 from strTools.hxx:4,
                 from ff.cxx:3:
/usr/local/include/mtl/envelope2D.h:72: error: declaration of ‘typedef struct mtl::twod_tag mtl::envelope2D<T>::dimension’
/usr/local/include/mtl/dimension.h:19: error: changes meaning of ‘dimension’ from ‘class mtl::dimension<typename mtl::dense1D<T, 0>::size_type, 0, 0>’
make[1]: *** [ff.o] Error 1

Что означало бы ошибку в MTL. Я перешел на разные версии MTL, и проблема сохраняется, но в Google нет правильного ответа. Я использую компилятор g ++.

У кого-нибудь есть клик?

Ответы [ 3 ]

0 голосов
/ 12 мая 2010

Ну, я тоже так думал, но это также происходит с набором тестов, который поставляется с MTL.

0 голосов
/ 20 июня 2012

У меня сегодня была такая же проблема с MTL-версией 2.1.2-23.tentive.tar.gz.

Решение было изменить:

typedef dimension<size_type> dim_type;

до

typedef mtl::dimension<size_type> dim_type;

в файле envelope2D.h. Я также должен был добавить

#include <cstddef>

в начале light1D.h.

0 голосов
/ 11 мая 2010

проблема в вашем коде, почти стопроцентная гарантия.

Ищите неоднозначную декларацию с измерением, т.е. typedef mtl::envelope2D<T>::dimension dimension

...