Trong Visual Studio, tôi thường chỉ sử dụng các đối tượng cho mục đích RAII. Ví dụ:Xử lý với C++ "đã khởi tạo nhưng không được tham chiếu" cảnh báo về việc hủy bỏ người trợ giúp phạm vi?
ScopeGuard close_guard = MakeGuard(&close_file, file);
Toàn bộ mục đích của close_guard là để đảm bảo rằng các tập tin sẽ được gần gũi về lối ra chức năng, nó không được sử dụng bất cứ nơi nào khác. Tuy nhiên, Visual Studio cho tôi cảnh báo rằng "biến số địa phương được khởi tạo nhưng không được tham chiếu". Tôi muốn tắt cảnh báo này cho trường hợp cụ thể này.
Làm thế nào để bạn đối phó với loại tình huống này? Visual Studio nghĩ rằng đối tượng này là vô ích, nhưng điều này là sai vì nó có một destructor không tầm thường.
Tôi không muốn sử dụng chỉ thị #pragma cảnh báo vì điều này sẽ tắt cảnh báo này ngay cả vì lý do chính đáng.
Bạn có thể đăng mã cho ScopeGuard và MakeGuard (hoặc một số phiên bản cắt giảm vẫn hiển thị hành vi) không? –
Vui lòng đọc http://www.ddj.com/cpp/184403758 để có thể triển khai. –
Bạn đang xem phiên bản MSVC nào trong hành vi này? – MSN