【发布时间】:2019-01-15 17:03:32
【问题描述】:
我在特定的企业环境中工作,目前没有 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 标准问世 8 年后。
-
@NeilButterworth:我不同意。升级到 C++11 没有意义。他们应该跳过 C++11,直接升级到 C++17。
-
@Jerry 不,让我们全力以赴去 C++20!但说真的,我一直在这些“企业”环境中。而做任何升级都是一场巨大的政治动荡,会遭到各方的反对,所以你经常不得不拿你能得到的东西。然而,这并不是什么都不做的借口。
-
如果您无法升级到 C++11 或更高版本,Catch2 有一个 Catch1.x 分支,可以在 C++11 之前的编译器上运行。
标签: c++ c++11 boost c++03 boost.test