के रूप में मैं पूर्वप्रक्रमक के साथ प्रपत्र "example.cpp:34"
की एक स्थिर स्ट्रिंग निर्माण करने के लिए चाहते हैं, लेकिन __FILE__
मैक्रो "lib/example/example.cpp"
करने का विस्तार होगा और __LINE__
एक पूर्णांक के रूप में 34
विस्तारित होती है। क्या मैं प्रीप्रोसेसर के साथ वांछित स्ट्रिंग का निर्माण कर सकता हूं? जीसीसी सीमाएं ठीक हैं।सीपीपी पूर्वप्रक्रमक और फ़ाइल नाम के basename, लाइन नंबर स्ट्रिंग
संपादित करें यहां सबसे महत्वपूर्ण हिस्सा यह है कि मुझे एक स्थिर सी-शैली स्ट्रिंग चाहिए, इसलिए मैं basename
फ़ंक्शन का उपयोग नहीं कर सकता। मैं सोच रहा हूं कि प्रीप्रोसेसर में उस कार्यक्षमता को दोहराने के लिए कोई तरीका है, संभवतः बूस्ट एक्सटेंशन के साथ?
है सी ++ 11 ठीक? प्रीप्रोसेसर में या स्ट्रिंग-टाइम में प्रयोग करने योग्य स्ट्रिंग चाहिए? – kennytm
@ केनीटीएम नहीं, मैं सी ++ 11 का उपयोग नहीं कर सकता। मैं इसे संकलित समय पर चाहता हूं। बूस्ट भी ठीक है। –
या '__FILE__' का उपयोग न करें, लेकिन ब्याज की प्रत्येक फ़ाइल के शीर्ष पर अपनी स्वयं की स्ट्रिंग अक्षर परिभाषित करें। – chill