मैं निम्नलिखित पैटर्न सामान्यीकरण करने के लिए चाहते हैं के ऊपर मेटा-यात्रा:variadic टेम्पलेट्स तर्क
template<class A1, class A2, class A3>
class Foo {
protected:
template<class T>
void foo(const T& t) {...do stuff...}
public:
void bar(const A1& a) { foo(a); }
void bar(const A2& a) { foo(a); }
void bar(const A3& a) { foo(a); }
};
ऊपर दृष्टिकोण बढ़ रही बहस की संख्या के साथ पैमाने पर नहीं है। तो, मैं करना चाहता हूं:
template<class As...>
class Foo {
protected:
template<class T>
void foo(const t& a) {...do stuff...}
public:
for each type A in As declare:
void bar(const A& a) { foo(a); }
};
क्या ऐसा करने का कोई तरीका है?
bar
में एक चेक के लिए हो सकता है कर सकते हैं, इसमें * समान * प्रकार कई बार होते हैं या अनुक्रम अद्वितीय प्रकार होंगे? – Nim