3
如果我想將我的default
默認構造函數聲明爲constexpr
,我會在Clang 3.8和GCC 5.3中得到編譯器錯誤。據this計算器問題,它只是應該很好地工作:constexpr默認構造函數
struct A
{
constexpr A() = default;
int x;
};
但是:
Error: defaulted definition of default constructor is not constexpr
你有任何線索,什麼是真正回事?
是啊,我也想通了在此期間。所引用的SO問題/答案相當不完整且具有誤導性。 – plasmacel
@plasmacel接受的答案覆蓋了所需的信息...在最後以粗體顯示,它解釋瞭如果您不寫'constexpr',那麼函數是constexpr當且僅當它符合constexpr的標準;然後最後一段說明,如果你想在你的函數不符合條件時得到一個編譯錯誤,你自己就可以編寫'constexpr'(因爲你的函數不符合標準) –