Действительно ли тесты данных 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.

Другие вопросы по тегам