C ++ - Standardmehrdeutigkeit

8

Soweit ich im Standard sehen kann, ist der folgende Code gültig. Es kompiliert in MSVC1025.

%Vor%

Die Qualifikationsmerkmale const und volatile scheinen in diesen Deklarationen sinnlos zu sein. Sie helfen weder dem Compiler noch dem Programmierer, noch verletzen sie ihn.

Der Standard scheint nicht darauf aus zu sein, diese "leeren Zweideutigkeiten" auszumerzen. Bei der leeren Deklaration ; ist dies explizit erlaubt.

Gibt es andere Fälle von Token, die nach der Vorverarbeitung für die Bedeutung des Ausdrucks irrelevant sind?

    
Hector 21.10.2015, 15:43
quelle

1 Antwort

4

Sowohl clang als auch gcc lehne diesen Code mit -pedantic-errors ab. Clam bietet den folgenden Fehler:

%Vor%

Der C ++ - Standardentwurf Abschnitt 7.1.6.1 Der cv-Qualifier [dcl.type.cv] sagt:

  

[...] Wenn ein cv-Qualifier in einem decl-specifier-seq erscheint, muss die init-declator-list der Deklaration   nicht leer sein. [...]

    
Shafik Yaghmour 21.10.2015, 15:59
quelle

Tags und Links