Я пытаюсь скомпилировать простой пример в Turtle (с платформой для ускоренного модульного тестирования) и получаю ошибки компиляции из Turtle.
Я предполагаю, что у Черепахи действительно нет ошибок, и это что-то, что я делаю неправильно или несовместимо.
Любая помощь будет оценена.
Пример:
#define BOOST_TEST_MAIN
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
#include <turtle/mock.hpp>
BOOST_AUTO_TEST_CASE(trutletest){
BOOST_CHECK(1 == 4);
}
** Я дистиллировал его, поэтому он даже не использует какие-либо функции Turtle, просто он вызывает ошибки.
Ошибки, которые я получаю:
In file included from ../turtle/include/turtle/detail/../matcher.hpp:14,
from ../turtle/include/turtle/detail/function.hpp:16,
from ../turtle/include/turtle/detail/functor.hpp:12,
from ../turtle/include/turtle/reset.hpp:14,
from ../turtle/include/turtle/mock.hpp:14,
from test.cpp:5:
../turtle/include/turtle/detail/../detail/is_functor.hpp:22: error: expected constructor, destructor, or type conversion before ‘(’ token
In file included from ../turtle/include/turtle/detail/function.hpp:16,
from ../turtle/include/turtle/detail/functor.hpp:12,
from ../turtle/include/turtle/reset.hpp:14,
from ../turtle/include/turtle/mock.hpp:14,
from test.cpp:5:
../turtle/include/turtle/detail/../matcher.hpp:87: error: ‘is_functor’ is not a member of ‘mock::detail’
../turtle/include/turtle/detail/../matcher.hpp:87: error: ‘is_functor’ is not a member of ‘mock::detail’
../turtle/include/turtle/detail/../matcher.hpp:87: error: template argument 1 is invalid
../turtle/include/turtle/detail/../matcher.hpp:88: error: template argument 3 is invalid
../turtle/include/turtle/detail/../matcher.hpp:89: error: expected unqualified-id before ‘>’ token
Строка компиляции:
g ++ test.cpp -o test -I ../turtle/include/ -lboost_unit_test_framework
Я использую:
g ++ (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4)
Черепаха 1.2.4
Как прокомментировал cv_and_he, проблема заключалась в использовании старой версии Boost.
Обновление до последней версии (1.54.0) устранило проблему.
Других решений пока нет …