सी ++ में, क्या मेरे पास एक फ़ंक्शन के लिए डिफॉल्ट तर्क हो सकता है जो __PRETTY_FUNCTION___
, ___FILE___
, और ___LINE__
पर कॉलर के बिंदु पर परिभाषित किया गया है और मैक्रोज़ का उपयोग किये बिना हेडर फ़ाइल में डिफॉल्ट की आपूर्ति की जाती है?क्या मैं कॉलर पर __FILE__ के मान पर फ़ंक्शन तर्क डिफ़ॉल्ट कर सकता हूं?
6
A
उत्तर
5
आप नहीं कर सकते, लेकिन आप इस व्यवहार को अतिरिक्त मैक्रो से प्राप्त कर सकते हैं। उदाहरण के लिए:
#DEFINE THROW(e) throwException(e, __FILE__, __LINE__);
एक तरफ ध्यान दें पर, __PRETTY_FUNCTION__
मानक नहीं है।
1
नहीं मैक्रोज़ स्रोत स्रोत पर विस्तारित होते हैं जहां वे होते हैं।
0
शायद आप कर सकते हैं ... लेकिन निश्चित रूप से आपके द्वारा वर्णित प्रतिबंध (कोई मैक्रोज़) नहीं है।