Sử dụng -pedantic-errors
cờ trong gcc
và clang
biến này vào một lỗi see it live:
error: extra tokens at end of #include directive
#include <iostream> gfhgfhgf
^
đó cho thấy nó là một phần mở rộng.
Nếu chúng ta nhìn vào Interfacing C and TAL In The Tandem Environment họ có một số mã như thế này:
#include <stdlibh> nolist
^^^^^^
Vì vậy, cả hai gcc
và clang
hỗ trợ thêm các ký tự sau khi bao gồm chỉ thị để hỗ trợ một phần mở rộng cần thiết trên một số nền tảng. Sử dụng -pedantic flags làm gcc
và clang
tạo ra một cảnh báo cho các phần mở rộng vi phạm tiêu chuẩn và như đã nói ở trên, bạn có thể sử dụng -pendatic-errors
để tắt chức năng này vào một lỗi (tôi nhấn mạnh):
để có được tất cả các chẩn đoán cần thiết theo tiêu chuẩn, bạn nên cũng chỉ định -nhập sai (hoặc lỗi -pantic nếu bạn muốn chúng là lỗi thay vì cảnh báo).
Chúng ta có thể tìm thấy một tài liệu tham khảo cho phần mở rộng nolist
trong HP'sC/C++ Programmers guide for NonStop Systrms mà nói:
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.
Lưu ý, các draft C++ standard định nghĩa ngữ pháp cho hình thức include
trong phần 16.2
[cpp .include] như sau:
# include < h-char-sequence> new-line
Nguồn
2015-01-07 10:24:02
Trình biên dịch của bạn là gì? Mine ('clang-600.0.51') đưa ra cảnh báo. – NPE
Ngữ pháp tiền xử lý MSVC2013 cũng rõ ràng không cho phép nó: http://msdn.microsoft.com/en-us/library/2scxys89.aspx – Bathsheba