मैं सिर्फ पाया qt_noop()
के अस्तित्व के रूप में qglobal.h में परिभाषित उद्देश्य:क्या है की `qt_noop`
inline void qt_noop() {}
इसका महत्व समझ में क्या है?
मैं सिर्फ पाया qt_noop()
के अस्तित्व के रूप में qglobal.h में परिभाषित उद्देश्य:क्या है की `qt_noop`
inline void qt_noop() {}
इसका महत्व समझ में क्या है?
मैं जानता हूँ कि यह कुछ मैक्रो है कि कुछ डिबग बनाता है केवल के लिए, उदाहरण के लिए क्या करना चाहिए में आंतरिक रूप से किया जाता है:
# ifndef QT_NO_DEBUG
# define Q_ASSERT(cond) ((!(cond)) ? qt_assert(#cond,__FILE__,__LINE__) : qt_noop())
# else
# define Q_ASSERT(cond) qt_noop()
# endif
#endif
तो इसका एकमात्र उद्देश्य टर्नरी ऑपरेटर का उपयोग करना है (क्यों एक एकल नहीं?) क्योंकि इसे दूसरी परिभाषा में छोड़ा जा सकता है? – gregseth
इसे दूसरी परिभाषा में छोड़ा नहीं जा सकता है। Q_ASSERT मैक्रो आमतौर पर सामान्य फ़ंक्शन कॉल की तरह उपयोग किया जाता है, यानी 'Q_ASSERT (xxx == yyy); '। इसलिए मैक्रो को उस कोड में विस्तार करना चाहिए जिसे बिना किसी त्रुटि/चेतावनियों के अर्धविराम के साथ किया जा सकता है। "सिंगल इफ" के लिए, मैक्रोज़ के साथ कुछ समस्याएं हैं, यदि ब्रेसिज़ के बिना बयान देते हैं तो उन्हें अन्य के अंदर उपयोग किया जाता है (देखें http://www.parashift.com/c++-faq-lite/misc-technical-issues। एचटीएमएल # faq-39.4), तो यहां टर्नरी ऑपरेटर एक बेहतर विचार हो सकता है। – chalup
टिप्पणी के लिए टिप्पणी और लिंक के लिए और अधिक स्वीकृत ... वैसे भी, धन्यवाद! :) – gregseth
+1 प्रश्न के लिए ... – mosg
* NOOP * - * कोई सेशन * - कोई ऑपरेशन नहीं। –
निश्चित रूप से! एक समारोह क्यों बनाते हैं जो कुछ करता है ... कुछ भी नहीं! – gregseth