Boost.Test 的数据测试用例真的需要 C++11 吗?
Do Boost.Test's data test cases really require 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 标准?
Boost 通常不会故意破坏现有库中的 c++11 兼容性(尽管这种态度正在改变,您应该期望将来有更多的 c++11 要求,请参阅关于 boost 开发人员邮件列表的讨论)。
然而,新库和现有库的新功能不遵守此限制,如果实现 easier/simpler/faster/more 可靠等,通常需要 c++11
BOOST_DATA_TEST_CASE
仅在 boost 1.59.0 中引入,因此很可能使用 c++11。
一般建议是,如果使用旧编译器,则使用旧版本的 boost。如果您想要新功能,请升级您的编译器并使用最新版本的 boost。
我在特定的企业环境中工作,目前没有 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 标准?
Boost 通常不会故意破坏现有库中的 c++11 兼容性(尽管这种态度正在改变,您应该期望将来有更多的 c++11 要求,请参阅关于 boost 开发人员邮件列表的讨论)。
然而,新库和现有库的新功能不遵守此限制,如果实现 easier/simpler/faster/more 可靠等,通常需要 c++11
BOOST_DATA_TEST_CASE
仅在 boost 1.59.0 中引入,因此很可能使用 c++11。
一般建议是,如果使用旧编译器,则使用旧版本的 boost。如果您想要新功能,请升级您的编译器并使用最新版本的 boost。