Nel corrente C ++ quando il corpo delle istruzioni if
contiene un solo comando, quindi:
Le parentesi attorno alla condizione if
sono obbligatorie ma i blocchi sono facoltativi. Quindi, entrambi gli esempi sono OK:
if ( condition ) { return 0; }
if ( condition ) return 0;
Ma teoricamente è possibile farlo anche in senso opposto ?:
Blocchi obbligatori e parentesi attorno a if
condizione facoltativa:
if ( condition ) { return 0; }
if condition { return 0; }
È teoreticamente possibile estendere la sintassi C ++ in questo modo? (ad esempio come estensione in qualche compilatore C ++ o teoricamente in qualche futuro standard C ++). O collide questa ipotetica estensione con qualche altra regola sintattica in C ++?
Nota: le opinioni personali se questa estensione deve essere apportata o meno sono irrilevanti - non è questa la domanda.
EDIT :
La severa interpretazione della domanda è stata ben risolta da Jules.
Ma se "parentesi opzionale" non significherà "opzionale in ogni caso" ma invece "facoltativo nella maggior parte dei casi", la modifica proposta in C ++ può ancora essere apportata. In rari casi d'angolo come quello nella risposta Jules, il compilatore può rilevare l'ambiquity e l'errore di output:
"Ambiguous if condition. You must explicitly use parenthesis to resolve it"