मैं यह पता लगाने की कोशिश कर रहा हूं कि एक मैक्रो कैसे लिखा जाए जो एक चर नाम के दोनों स्ट्रिंग शाब्दिक प्रतिनिधित्व के साथ-साथ चर को एक फ़ंक्शन में बदल देगा।
उदाहरण के लिए निम्नलिखित फ़ंक्शन दिए गए हैं।
void do_something(string name, int val)
{
cout << name << ": " << val << endl;
}
मैं एक मैक्रो लिखना चाहता हूं ताकि मैं यह कर सकूं:
int my_val = 5;
CALL_DO_SOMETHING(my_val);
जो प्रिंट आउट होगा: my_val: 5
मैंने निम्नलिखित करने की कोशिश की:
#define CALL_DO_SOMETHING(VAR) do_something("VAR", VAR);
हालाँकि, जैसा कि आप अनुमान लगा सकते हैं, उद्धरणों के अंदर VAR को प्रतिस्थापित नहीं किया जाता है, लेकिन केवल स्ट्रिंग शाब्दिक "VAR" के रूप में पारित किया जाता है। इसलिए मैं जानना चाहूंगा कि क्या मैक्रो तर्क को एक स्ट्रिंग शाब्दिक में बदलने का एक तरीका है।