कहते हैं कि हम इसकॉमा ++ मैक्रो
#define FOO(type,name) type name
की तरह एक मैक्रो कौन सा हम जैसे
FOO(int, int_var);
इस्तेमाल कर सकते हैं है लेकिन हमेशा की तरह बस उस के रूप में:
FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2
बेशक हम कर सकते थे:
typedef std::map<int, int> map_int_int_t;
FOO(map_int_int_t, map_var); // OK
जो बहुत ergonomic नहीं है। प्लस प्रकार असंगतताओं के साथ निपटा जाना है। मैक्रो के साथ इसे हल करने का कोई विचार है? अन्यथा
#define SINGLE_ARG(...) __VA_ARGS__
#define FOO(type,name) type name
FOO(SINGLE_ARG(std::map<int, int>), map_var);
, ताकि उसे कुछ अतिरिक्त थकाऊ है::
मुझे लगता है कि आपको अक्षर बनाने के लिए पात्रों से बचना होगा। – Jite
कम से कम सी ++ में, आप कहीं भी टाइपपीफ डाल सकते हैं, इसलिए मुझे यकीन नहीं है कि आप क्यों कहते हैं कि इसे "पहले से" होना चाहिए। –