एंड्री अलेक्जेंड्रेस्कू ने एक उत्कृष्ट वार्ता दी: Variadic Templates are Funadic।वैराडिक टेम्पलेट्स - विस्तार के विभिन्न प्रकार
template <class... Ts> void fun(Ts... vs) {
gun(A<Ts...>::hun(vs)...);
gun(A<Ts...>::hun(vs...));
gun(A<Ts>::hun(vs)...);
}
वे बताते हैं:
कॉल 1: class A
की instatiation के लिए सभी Ts
का विस्तार, फिर hun(vs)
तब फैलता कॉल
वह निम्नलिखित 3 विस्तार जो subltey अलग हैं प्रस्तुत करता है gun
कॉल 2: का विस्तार सभी Ts
और सभी vs
अलग
कॉल 3: ताला कदम है, यानी में Expnads: Ts
का तर्क 1 और vs
का तर्क 1 विस्तृत Ts
का तर्क 2 का विस्तार करें और vs
का तर्क 2 Ts
का तर्क n और vs
अन्य चर्चा का तर्क n variadic templ पर विस्तार एट्स केवल साधारण वैरैडिक क्लास टेम्पलेट्स और वेरिएफ फ़ंक्शन जैसे विविधता कार्यों को कवर करने लगते हैं। मुझे इस बात के बारे में अनिश्चितता है कि इन विभिन्न प्रकार के विस्तार कोड को कैसे प्रभावित करते हैं और जहां प्रत्येक प्रकार उपयोगी होगा।
क्या किसी के पास कुछ उदाहरण हैं जो प्रत्येक प्रकार के विस्तार के आवेदन को प्रदर्शित करते हैं?
[वैराडिक टेम्पलेट्स पैक विस्तार] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/9182251/variadic-templates-pack-expansions) – kennytm
@ केनीटीएम जो डुप्लिकेट नहीं है। यह लड़का प्रत्येक प्रकार के विस्तार के उदाहरण चाहता है (जरूरी नहीं कि केवल उन तीनों जिन्हें एलेक्सेंड्रेसु दिखाया गया हो, और जो उन्होंने दिखाया वह केवल दो प्रकार का विस्तार है (एक टेम्पलेट तर्कसूची में से एक है, और एक फ़ंक्शन तर्क सूची में))। –
... लेकिन जैसा कि उन्होंने एक जवाब स्वीकार किया जो केवल उन दो प्रकार के विस्तार को दिखाता है, मुझे लगता है कि या तो सवाल कमजोर था या मुझे प्रश्नों की समझ में कमी थी या दोनों ... –