मैं एक मैक्रो का उपयोग करना पसंद करता हूं, क्योंकि यह न केवल मेरे इरादे को संकलक बताता है, बल्कि कोड के अन्य रखरखाव, और बाद में खोजने योग्य है।
तर्क नाम पर टिप्पणी करने की विधि कोड (या मुझे 6 महीने बाद) से अपरिचित लोगों द्वारा आसानी से याद किया जा सकता है।
हालांकि, यह एक स्टाइल-इश्यू है, न तो विधि उत्पन्न, प्रदर्शन या मजबूती के संबंध में विधि "बेहतर" या अधिक अनुकूल है। मेरे लिए, निर्णायक कारक एक मानकीकृत प्रणाली के माध्यम से अपने इरादे के दूसरों को सूचित कर रहा है। पैरामीटर नाम छोड़ना और एक टिप्पणी में डाल समान रूप से अच्छी तरह से काम करेगा:
void CFooBar::OnLvnItemchanged(NMHDR *pNMHDR, LRESULT *pResult)
{
UNREFERENCED_PARAMETER(pNMHDR);
वैकल्पिक रूप से:
void CFooBar::OnLvnItemchanged(NMHDR* /* pNMHDR */, LRESULT *pResult)
{
// Not using: pNMHDR
मैं कहूँगा कि सबसे खराब समाधान चेतावनी संदेश को दबा है; जो आपकी पूरी फ़ाइल या प्रोजेक्ट को प्रभावित करेगा, और आप ज्ञान खो देंगे जो शायद आपने कुछ याद किया है। कम से कम मैक्रो जोड़कर, या तर्क नाम पर टिप्पणी करके, आपने दूसरों को बताया है कि आपने इस तर्क का उपयोग न करने का सचेत निर्णय लिया है और यह कोई गलती नहीं है।
WinNT में विंडोज एसडीके।एच UNREFERENCED_PARAMETER()
DBG_UNREFERENCED_PARAMETER()
और DBG_UNREFERENCED_LOCAL_VARIABLE()
के साथ परिभाषित करता है। वे सभी एक ही चीज़ का मूल्यांकन करते हैं, लेकिन अंतर यह है कि जब आप प्रारंभ कर रहे हैं तो DBG_UNREFERENCED_PARAMETER() का उपयोग किया जाता है और कोड पूर्ण होने पर पैरामीटर का उपयोग करने की अपेक्षा करता है। जब आप सुनिश्चित हों कि आप पैरामीटर का कभी भी उपयोग नहीं करेंगे, तो UNREFERENCED_PARAMETER() संस्करण का उपयोग करें।
माइक्रोसॉफ्ट फाउंडेशन क्लासेस (एमएफसी) के पास समान UNUSED()
और UNUSED_ALWAYS()
मैक्रोज़ के साथ एक समान सम्मेलन है।
एक शैली चुनें और इसके साथ चिपके रहें। इस तरह बाद में आप अपने कोड में "DBG_UNREFERENCED_PARAMETER
" खोज सकते हैं और उस तर्क के किसी भी उदाहरण को ढूंढ सकते हैं जहां आपने तर्क का उपयोग करने की अपेक्षा की थी, लेकिन नहीं। एक सतत शैली को अपनाने और आदत से इसका उपयोग करके, आप इसे और बाद में अपने लिए आसान बना देंगे।
बूस्ट का उपयोग करें :: ignore_unused (param) http://stackoverflow.com/a/24310846/888576 –