Per quanto posso vedere nello standard, il seguente codice è valido. Compilare in MSVC1025.Ambiguità standard C++
const struct omg;
struct omg volatile;
int main()
{
return 0;
}
Le qualificazioni const
e volatile
sembrano senza scopo di tali dichiarazioni. Non aiutano né danneggiano né il compilatore né il programmatore.
Lo standard non sembra intenzionato a eliminare queste "ambiguità vuote". Nel caso della dichiarazione vuota ;
, è esplicitamente consentito.
Esistono altri casi di token che, dopo aver preelaborato, sono irrilevanti per il significato dell'espressione?
[ 'register'] (http: // stackoverflow.com/questions/3207018/register-keyword-in-c) –
Non considererei MSVC un arbitro affidabile di ciò che lo standard consente o richiede. E sono propenso a dubitare che la situazione cambierà entro l'anno 11025 :-) –
fallisce su g ++: http://coliru.stacked-crooked.com/a/b486009ecb10f5e7 – NathanOliver