2012-01-02 9 views
10

क्या सी ++ 11 सुविधाओं का उपयोग करके Xmacro मुहावरे को प्रतिस्थापित करने का कोई तरीका है, और अधिमानतः प्रीप्रोसेसर का उपयोग नहीं कर रहा है? मैं सोच रहा था कि टुपल टेम्पलेट्स का इस्तेमाल किया जा सकता था, लेकिन मैं अभी भी उन कामों को समझने की कोशिश कर रहा हूं।क्या एक्स-मैक्रोज़ को बदलने का कोई टेम्पलेट/कॉन्स्टेक्स/सी ++ 11 तरीका है?

+1

+1 इस तथ्य को मुझे सतर्क करने के लिए कि इस तकनीक का नाम है। मैंने इसे कोड में पहले देखा है और मैंने इसका इस्तेमाल किया है। लेकिन मुझे नहीं पता था कि इसका नाम कुछ था। –

उत्तर

5

XMacros विस्तृत विविधता के लिए एक सामान्य उपकरण है। जिनमें से कई (जैसे गणक, स्ट्रिंग इत्यादि की सूची बनाना) किसी भी तरह के टेम्पलेट की क्षमताओं से परे हैं।

शायद कुछ मामले हैं कि आपको टेम्पलेट्स के साथ प्रतिस्थापित करने का कोई तरीका मिल सकता है। लेकिन निश्चित रूप से उनमें से सभी नहीं।

+0

मैं उम्मीद कर रहा था कि यह मामला हो। इस समय "कुछ मामलों" का उपयोग मैं कर रहा हूं, और टेम्पलेट्स के साथ प्रतिस्थापित करना चाहता हूं, जो enums को स्ट्रिंग कर रहा है। – Naddiseo

+1

@Naddiseo: उस मामले के लिए, बिल्कुल नहीं। टेम्पलेट्स में उस टोकन के स्ट्रिंग प्रस्तुति में टोकन को बदलने की कोई क्षमता नहीं है, जो कि इसकी आवश्यकता होगी। –

+0

सी ++ 11 वास्तव में कुछ और शक्तिशाली संकलन-समय स्ट्रिंग प्रसंस्करण और प्रतिबिंब क्षमताओं का उपयोग कर सकता है। कुछ 'std :: enum_name :: मान() -> const char * 'की तरह कुछ शानदार होगा। –

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