Sicolons em uma definição de classe
Eu estava lendothis gotw e aqui está um exemplo de códig
struct X {
static bool f( int* p )
{
return p && 0[p] and not p[1:>>p[2];
};
};
A questão era: quantos erros um compilador compatível deve fornecer:
Eu respondi uma, porque esse código é equivalente a
struct X {
static bool f( int* p )
{
return p && p[0] && ! p[1] > p[2];
};
};
E eu estava pensando que um ponto-e-vírgula após uma definição de função estática seria um erro. Mas o Sr. Sutter diz 0 e explica (além das coisas que eu entendo) que
O ponto e vírgula "extra" é permitido no final de uma declaração de funçã
Minha pergunta é
Que texto no padrão permite isso? Refere-se apenas às funções de membro?Pode aparecer um ponto-e-vírgula entre dois membros ou em qualquer outro lugar em uma definição de classe como em
struct X
{
int a;;;;int b; //Legal?
};