假设我们有以下类(class):
class A {
static SomeLongType b;
};
现在我们必须在适当的cpp文件中对其进行初始化。我可以想到以下几种方式:
SomeLongType A::b{}; // repetition of SomeLongType
decltype(A::b) A::b{}; // A::b written two times
两者似乎对我来说都很麻烦。有没有更好的办法?
最佳答案
完美的解决方案是使用C++ 11 auto
。但是正如ecatmur所评论的那样,这是该语言所不允许的。
为什么不只定义一个简单的宏?
#define DEFINE(x) decltype(x) x{}
struct A
{
static SomeLongType b;
};
DEFINE( A::b );
我真的很讨厌C宏,但是在某些情况下它们很有用。
关于c++ - 如何初始化静态成员而不重复其类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21339459/