C++ google测试和静态constexpr成员
从: 如果您的类具有静态数据成员:C++ google测试和静态constexpr成员,c++,googletest,C++,Googletest,从: 如果您的类具有静态数据成员: // foo.h class Foo { ... static const int kBar = 100; }; 您还需要在foo.cc中的类主体之外定义它: const int Foo::kBar;//此处没有初始值设定项。 否则,您的代码是无效的C++,可能会以意外的方式中断。特别是,在Google测试比较断言(EXPECT_EQ等)中使用它将生成“未定义引用”链接器错误 如果我使用的不是static const,而是static co
// foo.h
class Foo {
...
static const int kBar = 100;
};
您还需要在foo.cc中的类主体之外定义它:
const int Foo::kBar;//此处没有初始值设定项。
否则,您的代码是无效的C++,可能会以意外的方式中断。特别是,在Google测试比较断言(EXPECT_EQ等)中使用它将生成“未定义引用”链接器错误
如果我使用的不是
static const
,而是static constexpr
,那么我是否应该在foo.cc中有定义?在C++11和C++14中,即使是constexpr
,也需要对foo
进行单独定义。但是,对于constexpr
情况,单独的定义是