【发布时间】:2018-09-13 16:01:18
【问题描述】:
我想实现这样的目标:
class MyTest: public ::testing::Test {
public:
const int myConstInt = 23;
}
TEST_F(MyTest, MyTest1) {... use myConstInt ...}
但回顾 EffectiveCPP 的第 4 条,以这种方式不能保证初始化,并且有可能出现未定义的行为。
假设上面是方法1。
我可以想到另外两种方法来实现这一点:
方法 2:使用 MyTest 构造函数的 myConstStr 的初始化列表。
方法 3:将其设为 constexpr - 因为该值是在编译时设置的,所以我不应该在运行时遇到任何初始化问题。
解决这个问题的正确方法是什么?还有 Effective CPP 是一本比较老的书——第 4 条的讨论还完全适用吗?
【问题讨论】:
标签: c++11 c++14 googletest