विजुअल स्टूडियो में, मैं अक्सर आरएआईआई उद्देश्यों के लिए वस्तुओं का उपयोग करता हूं। उदाहरण के लिए:स्कोप हेल्पर्स के विनाश के लिए सी ++ "प्रारंभिक लेकिन संदर्भित नहीं" चेतावनी से निपटना?
ScopeGuard close_guard = MakeGuard(&close_file, file);
close_guard का पूरा उद्देश्य है, यह कहीं और नहीं किया जाता है सुनिश्चित करें कि फ़ाइल समारोह बाहर निकलने पर करीब होगा बनाना है। हालांकि, विजुअल स्टूडियो मुझे एक चेतावनी देता है कि "स्थानीय चर प्रारंभ किया गया है लेकिन संदर्भित नहीं है"। मैं इस विशिष्ट मामले के लिए इस चेतावनी को बंद करना चाहता हूं।
आप इस तरह की स्थिति से कैसे निपटते हैं? विजुअल स्टूडियो सोचता है कि यह वस्तु बेकार है, लेकिन यह गलत है क्योंकि इसमें एक गैर-तुच्छ विनाशक है।
मैं #pragma चेतावनी इस के लिए निर्देश का उपयोग नहीं करना चाहता क्योंकि यह वैध कारणों से भी इस चेतावनी को बंद कर देगा।
क्या आप स्कोपगार्ड और मेकगार्ड (या कुछ कट-डाउन संस्करणों के लिए कोड पोस्ट कर सकते हैं जो अभी भी व्यवहार प्रदर्शित करते हैं)? –
कृपया एक संभावित कार्यान्वयन के लिए http://www.ddj.com/cpp/184403758 पढ़ें। –
एमएसवीसी का कौन सा संस्करण आप इस व्यवहार को देख रहे हैं? – MSN