6
मान लीजिए कि मैं करते हैंखाका गैर प्रकार सूचक
template <void (Foo::*method)()>
void only_for_a(Foo *f) {
(f->*method)();
}
only_for_a<&Foo::a>(&some_foo);
: और मैं एक समारोह है कि एक टेम्पलेट के रूप सूचक-हैं-
Foo
विधि का एक विशेष प्रकार लेता है बना सकते हैं 0
लेकिन क्या कोई ऐसा फ़ंक्शन बनाने का कोई तरीका है जिसे मैं पर किसी भी पॉइंटर क्लास विधि पर टेम्पलेट कर सकता हूं? मैं ऐसा करने में सक्षम होना चाहता हूं:
works_for_anything<&Foo::a>(&some_foo);
works_for_anything<&Foo::b>(&some_foo, 42);
int result = works_for_anything<&Foo::c>(&some_foo);
नहीं, गैर-प्रकार के टेम्पलेट पैरामीटर के पास एक निश्चित प्रकार होना चाहिए। तुम ऐसा क्यों करना चाहते हो? – Brian
'टेम्पलेट <टाइपनाम टी, शून्य (टी :: * medhod)()>' – erenon
@erenon मुझे लगता है कि आप 'टेम्पलेट <टाइपनाम टी, टी विधि>' का मतलब मानते हैं, लेकिन फिर कॉलर को प्रकार निर्दिष्ट करना होगा, उदा। 'works_almost (और some_foo, 42);'। लेकिन यह अनावश्यक लगता है। –
Barry