के टेम्पलेट कॉल अगर मैं की तरहC++ समारोह सूचक प्रकार
typedef void (*command)();
template <command c>
void execute() {
c();
}
void task() { /* some piece of code */ }
प्रकार घोषणाओं तो
execute<task>();
संकलन होगा और अपेक्षा के अनुरूप व्यवहार करता है। हालांकि अगर मैं टेम्पलेट को
template <command c>
void execute() {
command();
}
यह अभी भी संकलित करता है। मैंने दुर्घटना से ऐसा किया। अब मैं उलझन में हूं कि दूसरे संस्करण की क्या अपेक्षा की जाएगी।
'कमांड();' 'typedef' द्वारा परिभाषित फ़ंक्शन * पॉइंटर * प्रकार का अस्थायी ऑब्जेक्ट बनाता है। – Nawaz
'execute (कमांड) 'कॉल करने में कुछ गलत है ?? आप ऐसे हाइब्रिड पैटर्न का उपयोग क्यों करना चाहते हैं? –
यह एक अलग उदाहरण है। मैंने वास्तव में क्या किया है: http://stackoverflow.com/a/19611077/2036917 बिंदु यह है कि टेम्पलेट मुझे स्थैतिक चर के विभिन्न उदाहरणों की अनुमति देता है। मुझे पता है कि मैं उपयुक्त वस्तुओं के साथ इसे प्राप्त कर सकता हूं। लेकिन फिर याद रखें कि एक Arduino में केवल 2K रैम है। तो इस प्रकार दृष्टिकोण स्मृति पदचिह्न को थोड़ा कम कर देता है। –