假设我们有以下课程:
class A {
static SomeLongType b;
};
现在我们必须在适当的cpp文件中初始化它。我可以想到以下几种方式:
SomeLongType A::b{}; // repetition of SomeLongType
decltype(A::b) A::b{}; // A::b written two times
对我来说,两者似乎都很麻烦。还有更好的方法吗?
答案 0 :(得分:3)
完美的解决方案是使用C ++ 11 auto
。但是,正如ecatmur评论的那样,语言不允许这样做。
为什么不定义一个简单的宏?
#define DEFINE(x) decltype(x) x{}
struct A
{
static SomeLongType b;
};
DEFINE( A::b );
我真的很讨厌C宏,但在某些情况下它们很有用。