decltype
を仮想メンバ関数ポインタに使用することはできますか?仮想メンバ関数ポインタでのdecltypeの使用
次は、VS2012で内部エラー(C1001)を生成します。
struct C
{
virtual void Foo() {}
typedef decltype(&C::Foo) type; //pointer
}
しかし、これは罰金コンパイル:
struct C
{
virtual void Foo() {}
typedef decltype(C::Foo) type; //not pointer
}
それはバグですか?
内部エラーではなく、エラーメッセージを生成するのは「違法」でした。あなたは明らかにコンパイラにバグを発見しました。 – AnT
@AndreyT:+1、私はそれを追加します:*たとえそれが違法であっても、それは内部エラーを引き起こすべきではありません。 –