Tôi đã bắt đầu một dự án mới và đã quyết định đảm bảo dự án được xây dựng sạch sẽ với tùy chọn/Tường được bật. Vấn đề duy nhất không phải là tất cả các thư viện của bên thứ 3 (như tăng) biên dịch mà không cần cảnh báo, vì vậy tôi đã viện để làm điều này trong một tiêu đề chia sẻ:Có cách nào để vô hiệu hóa tất cả cảnh báo bằng pragma không?
#pragma warning(push)
#pragma warning(disable:4820)
#pragma warning(disable:4619)
#pragma warning(disable:4668)
#pragma warning(disable:4625)
#pragma warning(disable:4626)
#pragma warning(disable:4571)
#pragma warning(disable:4347)
#pragma warning(disable:4640)
#pragma warning(disable:4365)
#pragma warning(disable:4710)
#pragma warning(disable:4820)
#pragma warning(disable:4350)
#pragma warning(disable:4686)
#pragma warning(disable:4711)
#pragma warning(disable:4548)
#include <boost/array.hpp>
#include <boost/assert.hpp>
#include <boost/assign.hpp>
#include <boost/bind.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/filesystem.hpp>
#include <boost/foreach.hpp>
#include <boost/format.hpp>
#include <boost/function.hpp>
#include <boost/integer.hpp>
#include <boost/optional.hpp>
#include <boost/regex.hpp>
#include <boost/smart_ptr.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/tuple/tuple.hpp>
#include <boost/utility.hpp>
#include <boost/variant.hpp>
#pragma warning(pop)
này hoạt động tốt đủ, nhưng mỗi khi tôi thêm tiêu đề tăng mới Tôi phải thêm bất kỳ cảnh báo nào họ tạo ra vào danh sách. Có cách nào để nói vô hiệu hóa tất cả các cảnh báo cho đoạn mã này?
Tôi không có ý bỏ qua chiêu hồn nhưng trong bình luận của bạn ở đây tôi thấy một 1-to-1 mối quan hệ với push/pop cảnh báo. Nếu tôi vô hiệu hóa cảnh báo N, tôi có cần gọi số lần N lần nữa không? Một lần nữa, xin lỗi để hồi sinh một chủ đề cũ. – wheaties
Số lượng cảnh báo bạn vô hiệu hóa không liên quan. Số lượng 'push' phải khớp với số lượng 'pops' đó là tất cả. –
Ngoài ra, điều thú vị là nếu '#pragma warning (pop)' được sử dụng, một số cảnh báo (4514 là một ví dụ) vẫn sẽ được phát hành, có thể vì các điều kiện cảnh báo này được phát hiện trong một số ngữ cảnh sau khi biên dịch. – alecov