Semicolones en una definición de clase
Estaba leyendo este gotw y aquí hay una muestra de código desde allí:
struct X {
static bool f( int* p )
{
return p && 0[p] and not p[1:>>p[2];
};
};
La pregunta era: ¿cuántos errores debería dar un compilador compatibl
Respondí uno, porque este código es equivalente a
struct X {
static bool f( int* p )
{
return p && p[0] && ! p[1] > p[2];
};
};
Y estaba pensando que un punto y coma después de una definición de función estática sería un error. Pero el Sr. Sutter dice 0 y explica (aparte de las cosas que entiendo) que
l punto y coma "extra" se permite al final de una declaración de función.
Mi pregunta es
¿Qué texto en el estándar permite esto? ¿Esto se refiere solo a las funciones de los miembros?Puede aparecer un punto y coma entre dos miembros o en cualquier otro lugar en una definición de clase como en
struct X
{
int a;;;;int b; //Legal?
};