Mô tả ngắn:Loại trừ tiêu đề?
Header.h
có #include <stdbool.h>
trong đó có một Macro cho _Bool trong c.
file.cpp
bao gồm Header.h
, nhưng kể từ file.cpp
là C++ - nó có bool làm kiểu gốc. Bây giờ lint than phiền về một tập hợp các điều do điều này (redeclaration, phương pháp không tồn tại, vv). Có cách nào để ngăn chặn bao gồm của <stdbool.h>
trong file.cpp
mà không cần chạm Header.h
?
Nếu mô tả của tôi về một vấn đề có vẻ vô lý - vui lòng ném cà chua vào tôi :) Nếu không, nhờ sự giúp đỡ.
Edit: Bây giờ nghĩ đến việc này một lần nữa: biết các khái niệm cơ bản về lập và liên kết tôi nên đã nhận ra rằng 'trừ' một số tiêu đề trong tệp downstream/tiêu đề nghe có vẻ hài hước và không nên có thể không cludges. Nhưng vẫn còn, cảm ơn sự giúp đỡ. Một viên gạch nhỏ khác để tôi hiểu về điều này.
Khiếu nại với nhà cung cấp thư viện của bạn. 'stdbool.h' không nên định nghĩa' bool' và bạn bè làm macro trong C++. Trong thời gian đó, '# undef'. –
Bạn có thể sửa đổi 'header.h' không? Sau đó, chỉ cần thêm kiểm tra tiền xử lý có điều kiện cho '__cplusplus' trước khi bao gồm' '. Và bạn có thể muốn xem xét cái linter của bạn, nó dường như không xử lý C++ rất tốt, hoặc nó không làm tiền xử lý rất tốt. –
@ T.C. nó không phải là đơn giản, C++ 98 nói gì về '' vì ảnh hưởng của nó trong C++ 98 là không xác định. GCC's ' 'định nghĩa các macro cho C++ 98, vì các lý do. Lý do crappy. Nó ít nhất cũng có '#define bool bool' trong C++ mặc dù, không phải' #define bool _Bool' đang tích cực gây hại. –