मेरे पास एक क्लास टेम्पलेट है और मुझे लगता है कि वेराडिक टेम्पलेट स्टाइल इंस्टेंटेशन कैसे करें।वीएस -2010 सी ++ वैरिएडिक टेम्पलेट उदाहरण
template<typename _Classname, typename... Args>
class CFunctorStartExT
{
friend class CXXFactory;
protected:
template<typename U>
CFunctorStartExT(typename U& _functor, Args&... args) :
m_Functor(_functor),
m_args(args)
{
}
virtual bool ProcessLoop(CSomeClass* pThread)
{
return m_Functor(pThread, m_args);
}
protected:
_Classname& m_Functor;
Args... m_args;
};
जाहिर है इस संकलन नहीं होगा :):
यहाँ "कोड" अब तक मैं क्या देख रहा हूँ की है। विचार एक वर्ग बनाना है जो कि किसी भी फ़ंक्शन में एम_फंक्टर को पास करने के लिए बाद में पुनर्प्राप्त किए गए मानों को संग्रहीत कर सकता है (यदि कोई हो .. इसमें केवल _Classname/U परिभाषित हो)।
पहला: वीएस -2010 में वैराडिक टेम्पलेट भी किया जा सकता है? मुझे template<typename _Classname, typename... Args>
दूसरा, क्या मैं पूरा करने की कोशिश कर रहा हूं, क्या मैं टेम्पलेट घोषणा error C2143: syntax error : missing ',' before '...'
के साथ संकलित समस्याएं प्राप्त कर रहा हूं। धन्यवाद!
अंडरस्कोर से शुरू होने वाले नाम '_Classname' जैसे पूंजी पत्र के बाद आरक्षित हैं और आपको अपने प्रोग्राम में उनका उपयोग नहीं करना चाहिए। –
ओह .. किसके लिए आरक्षित/कौन? मैं अपना नामकरण सम्मेलन बदलने की कोशिश कर रहा हूं .. (m_, g_, आदि से बदलें) – BabelFish
देखें [यह] (http://stackoverflow.com/questions/228783/what-are-the-rules-about-using -एक-अंडरस्कोर में एसी-पहचानकर्ता)। – GManNickG