Ist es zulässig, decltype
mit virtuellen Mitgliedsfunktionszeigern zu verwenden?Verwendung von decltype mit virtuellen Mitgliedsfunktionszeigern
Folgendes erzeugt einen internen Fehler (C1001) mit VS2012.
struct C
{
virtual void Foo() {}
typedef decltype(&C::Foo) type; //pointer
}
Aber das kompiliert fein:
struct C
{
virtual void Foo() {}
typedef decltype(C::Foo) type; //not pointer
}
Ist es ein Fehler?
Es war "illegal", es würde eine Fehlermeldung erzeugen, kein interner Fehler. Sie haben offensichtlich einen Fehler im Compiler gefunden. – AnT
@AndreyT: +1, ich würde hinzufügen, dass: * auch wenn es illegal war, sollte es keinen internen Fehler verursachen *. –