Действительно ли тесты данных Boost.Test требуют C++11?
Я работаю в конкретной корпоративной среде, и на данный момент нет инфраструктуры C++11. Недавно я начал писать модульные тесты и решил использовать среду Boost.Test, так как Boost известен своей мобильностью и готовностью к работе. Хотя общий BOOST_AUTO_TEST_CASE отлично работает, я обнаружил, что тесты наборов данных (BOOST_DATA_TEST_CASE) заканчиваются в том числе boost/test/data/monomorphic/fwd.hpp
это включает <tuple>
безусловно. Действительно ли DATA_TEST_CASE требует C++11? Есть ли способ использовать BOOST_DATA_TEST_CASE и использовать встроенные кортежи Boost и другие поставляемые библиотеки для соответствия стандарту C++03?
1 ответ
Boost, как правило, намеренно не нарушает совместимость C++ 11 в существующих библиотеках (хотя это отношение меняется, и в будущем следует ожидать больше требований к C++ 11, см. Обсуждения в списках рассылки boost для разработчиков).
Однако новые библиотеки и новые функции для существующих библиотек не придерживаются этого ограничения и, как правило, требуют использования C++ 11, если это делает реализацию проще, проще, быстрее, надежнее и т. Д.
BOOST_DATA_TEST_CASE
был представлен только в boost 1.59.0, поэтому, скорее всего, будет использовать C++ 11.
Общий совет: если вы используете старый компилятор, используйте старую версию boost. Если вы хотите новые функции, обновите ваш компилятор и используйте последнюю версию boost.