Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ google测试和静态constexpr成员_C++_Googletest - Fatal编程技术网

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
情况,单独的定义是