मुझे किसी अन्य फ़ंक्शन पर तर्क के रूप में पारित फ़ंक्शन को कॉल करने की आवश्यकता है और इसे पहले इसके आवश्यक तर्कों को पारित किया जाना चाहिए।डी में पहले से दिए गए मानकों के साथ तर्क के रूप में पारित फ़ंक्शन को कैसे कॉल करें?
#include <iostream>
#define CALL(x) x; \
std::cout << "Called!" << std::endl;
void foo(int a, int b)
{
std::cout << a * b << std::endl;
}
int main()
{
CALL(foo(9, 8)); // I want to pass 2 int parameters inside 'foo' function call
system("PAUSE");
}
यह उत्पादन सकता था: C++ में, इस समस्या किसी मैक्रो के साथ हल किया जाता है
> 72
> Called!
है कि वास्तव में कैसे मैं डी में कोई भी विचार फ़ंक्शन को कॉल करने की जरूरत है?
संपादित करें: मैं इस डी में किया जा करने की जरूरत है मैं की तरह कॉल अंदर "foo" कॉल करना चाहते हैं:
CALL(foo(9, 8)) // and not like: CALL(foo, 9, 8)
लेकिन मैं नहीं जानता कि यह कैसे एक साथ शायद डी में हासिल की है Mixin?
क्या यह डी या सी ++ के बारे में कोई प्रश्न है? – YSC
* "सी ++ में, यह समस्या मैक्रो के साथ हल हो जाती है" *। यह बेहतर तरीका नहीं है, टेम्पलेट विधि बेहतर है (लेकिन थोड़ा अलग वाक्यविन्यास के साथ)। – Jarod42
@YSC क्षमा करें अगर मैं स्पष्ट नहीं हूं, तो यह डी के बारे में है। मैंने केवल उदाहरण दिया है कि मैंने इसे सी ++ में कैसे किया। –