このコードがエラーなしでコンパイルなぜ私は理解していない:無効になっていますか?
#include <iostream>
template <class T>
struct Test
{
static constexpr T f() {return T();}
};
int main()
{
Test<void> test;
test.f(); // Why not an error?
return 0;
}
は、それが標準に従ってOKですが、またはそれは、コンパイラの許容範囲でしょうか?
をまあ、私は、たとえば、あなたが持つことを許さている知っている '無効のfoo(){}空のバー(){リターンのfoo();}'。私はこれについては分かりません。 – chris
具体的にあなたの質問は何ですか?戻り値 'void'について(BTWはいつもC++では合法です)?あるいは 'constexpr void'の組み合わせについて? – AnT
エラーがどのようになるはずと思いますか? –