2010-08-11 12 views
6

सी ++ में, क्या मेरे पास एक फ़ंक्शन के लिए डिफॉल्ट तर्क हो सकता है जो __PRETTY_FUNCTION___, ___FILE___, और ___LINE__ पर कॉलर के बिंदु पर परिभाषित किया गया है और मैक्रोज़ का उपयोग किये बिना हेडर फ़ाइल में डिफॉल्ट की आपूर्ति की जाती है?क्या मैं कॉलर पर __FILE__ के मान पर फ़ंक्शन तर्क डिफ़ॉल्ट कर सकता हूं?

उत्तर

5

आप नहीं कर सकते, लेकिन आप इस व्यवहार को अतिरिक्त मैक्रो से प्राप्त कर सकते हैं। उदाहरण के लिए:

#DEFINE THROW(e) throwException(e, __FILE__, __LINE__); 

एक तरफ ध्यान दें पर, __PRETTY_FUNCTION__ मानक नहीं है।

1

नहीं मैक्रोज़ स्रोत स्रोत पर विस्तारित होते हैं जहां वे होते हैं।

0

शायद आप कर सकते हैं ... लेकिन निश्चित रूप से आपके द्वारा वर्णित प्रतिबंध (कोई मैक्रोज़) नहीं है।

संबंधित मुद्दे

 संबंधित मुद्दे