我希望 C 类有一个 C 类型的静态 constexpr 成员。这在 C++11 中可能吗?
尝试1:
struct Foo {
constexpr Foo() {}
static constexpr Foo f = Foo();
};
constexpr Foo Foo::f;
g++ 4.7.0 说:“不完整类型的无效使用”指的是Foo()
调用。
尝试2:
struct Foo {
constexpr Foo() {}
static constexpr Foo f;
};
constexpr Foo Foo::f = Foo();
现在的问题是类定义中的constexpr
成员缺少初始化程序。f
尝试 3:
struct Foo {
constexpr Foo() {}
static const Foo f;
};
constexpr Foo Foo::f = Foo();
现在 g++ 抱怨重新声明Foo::f
了constexpr
.