¿Es legal usar decltype
con punteros de función de miembro virtuales?Uso de decltype con punteros de función de miembro virtual
Lo siguiente genera un error interno (C1001) con VS2012.
struct C
{
virtual void Foo() {}
typedef decltype(&C::Foo) type; //pointer
}
Pero esto compila bien:
struct C
{
virtual void Foo() {}
typedef decltype(C::Foo) type; //not pointer
}
¿Es un error?
Si era "ilegal" generaría un mensaje de error, no un error interno. Obviamente, encontraste un error en el compilador. – AnT
@AndreyT: +1, agregaría que: * incluso si fuera ilegal, no debería causar un error interno *. –