আমি ম্যাক্রো কীভাবে লিখব তা জানার চেষ্টা করছি যা ভেরিয়েবলের সাথে একটি ভেরিয়েবলের সাথে একটি স্ট্রিং আক্ষরিক উপস্থাপনা উভয়কেই পাস করবে।
উদাহরণস্বরূপ নিম্নলিখিত ফাংশন দেওয়া।
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" হিসাবে পাস করা হয়েছে। সুতরাং আমি জানতে চাই যে ম্যাক্রো আর্গুমেন্টটিকে স্ট্রিং আক্ষরিক মধ্যে রূপান্তরিত করার কোনও উপায় আছে কিনা।