यदि यह संभव है, तो कोई भी रिकर्सन के बिना एक भिन्न टेम्पलेट पैरामीटर पैक में अनुक्रमित कर सकता है। हालांकि, जीसीसी refusing to pick up my partial specialization यहाँ है:क्या मैं आंशिक रूप से एक टेम्पलेट जैसे foo <टी ..., int, U ...> के साथ टेम्पलेट का विशेषज्ञ कर सकता हूं?
template <int I, typename List>
struct element_impl;
template <typename... TL, int... IL, typename T, int I, typename... TR, int... IR>
struct element_impl<I, typelist<pair<TL,IL>..., pair<T,I>, pair<TR,IR>...>> {
typedef T type;
};
prog.cpp: In instantiation of '
element<0, typelist<int, double, char, float, long int> >
':
prog.cpp:52:34: instantiated from here
prog.cpp:47:79: error: invalid use of incomplete type 'struct element_impl<0, typelist<pair<int, 0>, pair<double, 1>, pair<char, 2>, pair<float, 3>, pair<long int, 4> >
'
जीसीसी गाड़ी है, या मैं variadic टेम्पलेट्स में से कुछ सीमा अनदेखी कर रहा हूँ?
[यह सरल कोड] (http://ideone.com/CrNSc) के साथ, जीसीसी कहता है: 'त्रुटि: पैरामीटर पैक' टी 'टेम्पलेट पैरामीटर सूची के अंत में होना चाहिए'। इसलिए मुझे लगता है कि यह एक भाषा सीमा है। – Nawaz
@ नवाज यह बिल्कुल वैसा नहीं है। –
यह "बिल्कुल" समान नहीं है, लेकिन त्रुटि संदेश बहुत स्पष्ट है: पैरामीटर पैक * टेम्पलेट पैरामीटर सूची के अंत में * होना चाहिए। जीसीसी ने वही संदेश दोहराया है: http://ideone.com/2Rifn – Nawaz