के साथ फ़ंक्शन नामों की गतिशील रचना मैं गतिशील रूप से फ़ंक्शन बनाने के लिए मैक्रो (सी/सी ++) बनाने की कोशिश कर रहा हूं। असल में मेरे पास एक ऐसा कार्य है जिसका नाम "MyClassA" भाग में भिन्न होता है। इसके अलावा बहस मैक्रो परिभाषा के माध्यम से पारित किया जाना चाहिए। फिर फ़ंक्शन के भीतर एक वेरिएबल विधि कॉल है, उदाहरण के लिए "methodForClassA", फिर बहस के एक चर सेट के साथ।मैक्रोज़
void Java_somepackage_MyClassA_fixMethod(int arg1, int arg2) {
Toolbox.methodForClassA(arg1, arg2);
}
इस पैटर्न के साथ 40 से अधिक कार्य हैं। बेशक मैं उन्हें मैन्युअल रूप से या एक स्क्रिप्ट के साथ बना सकता हूं। लेकिन क्या मैक्रो के साथ ऐसा करना भी संभव है? इस तरह उदाहरण कुछ (जो काम नहीं करता है) के लिए:
# define MACRO_TEST(classname, methodname, args, argsMethod) void Java_somepackage_##classname_fixMethod(##args) {\
Toolbox.##methodname(##argsMethod);\
}
MACRO_TEST(MyClassA, methodForClassA, args1, args2)
कुछ प्रयोग और डॉक्स के पढ़ने के बाद, मैं केवल कैसे पैटर्न के साथ "डायनामिक" फ़ंक्शन नाम बनाने के लिए बाहर मिल सकता है, जहां एक "(" गतिशील इस प्रकार है भाग:।
#define FUNCTION(name, x) int func_##name() { return x;}
FUNCTION(test, 2);
सादर,