Usando i -pedantic-errors
bandiere gcc
e clang
trasforma questa in un errore see it live:
error: extra tokens at end of #include directive
#include <iostream> gfhgfhgf
^
che indica che è un'estensione.
Se guardiamo al Interfacing C and TAL In The Tandem Environment hanno qualche codice come questo:
#include <stdlibh> nolist
^^^^^^
in modo che entrambi gcc
e clang
supporto caratteri supplementari dopo la direttiva include per sostenere un'estensione necessaria su alcune piattaforme. Utilizzando il -pedantic flags rende gcc
e clang
produrre un avvertimento per le estensioni che violano gli standard e come osservato in precedenza che è possibile utilizzare -pendatic-errors
di trasformare questo in un errore (sottolineatura mia):
a ottenere tutte le diagnostiche necessarie in base allo standard, è necessario specificare anche -pedantic (o -pedantic-errors se si desidera che siano gli errori anziché gli avvertimenti) .
Siamo in grado di trovare un riferimento per la nolist
estensione nella HP'sC/C++ Programmers guide for NonStop Systrms che dice:
nolist
directs the compiler not to list the contents of the file or sections
being included.
This is an HP NonStop extension to the standard.
nota, il draft C++ standard definisce la grammatica per questa forma di include
nella sezione 16.2
[cpp .include] come segue:
# include < h-char-sequence> new-line
fonte
2015-01-07 10:24:02
Qual è il tuo compilatore? Il mio ('clang-600.0.51') emette un avviso. – NPE
Anche la grammatica del preprocessore MSVC2013 non consente esplicitamente: http://msdn.microsoft.com/en-us/library/2scxys89.aspx – Bathsheba