Tôi biết cách vô hiệu hóa tất cả cảnh báo #pragma không xác định. Câu trả lời đã được đưa ra, ví dụ, ở đây: SO: How to disable #pragma warnings?Cách tắt cảnh báo #pragma không xác định cụ thể? (GCC và/hoặc clang)
Câu hỏi của tôi là - có cách nào để vô hiệu hóa cảnh báo 'pragma' không xác định cho một pragma cụ thể không? Ví dụ, nếu tôi vô hiệu hóa cảnh báo cho #pragma ugubugu
đoạn mã sau:
#pragma ugubugu
#pragma untiunti
int main() {return 0;}
khi biên soạn với một trong hai:
g++ pragma.cpp -Wall
clang++ pragma.cpp -Wall
nên tạo ra một cảnh báo duy nhất:
warning: ignoring #pragma untiunti
Có lẽ, ví dụ, có một cách đơn giản để đăng ký một pragma tùy chỉnh mà sẽ không làm gì?
Sẽ thật tuyệt vời khi biết liệu có một tùy chọn như vậy là Visual Studio hay không, nhưng điều đó ít quan trọng hơn.
Cảm ơn bạn!
"nhưng tại sao cuối cùng anh ấy chơi với pragmas tùy chỉnh?"
Nguồn của tôi được phân tích bởi hai trình biên dịch. Trong một trong số đó, có một số đặc biệt là #pragma
. Tất nhiên, tôi có thể đặt #ifdef COMPILER_IDENTIFICATION_MACRO ... #endif
xung quanh mọi trường hợp của #pragma
nhưng điều đó sẽ rất cồng kềnh.
Cho rằng không ai đi kèm với một giải pháp tốt hơn, tôi phải chấp nhận một câu nói rằng "bây giờ có cách để làm điều đó" - đó là - của bạn. Ngoài ra, các con trỏ đến trình biên dịch internals có thể hữu ích nếu tôi quyết định nhảy sâu hơn vào nó. Cảm ơn bạn! – CygnusX1
Và không ai biết cách ngăn chặn các cảnh báo trong mã? Khi tôi gửi nó đi đến một thế hệ dự án tự động mà tôi không có quyền kiểm soát. Nó được xây dựng với đầy đủ cảnh báo. – Dan
#pragma GCC chẩn đoán đẩy #pragma GCC chẩn đoán bị bỏ qua "-Wunknown-pragmas" ... Mã sử dụng pragmas không xác định ... #pragma GCC chẩn đoán đẩy – Dan