मैं इस जैसे एक वर्ग है कि चर प्रकार की एक टपल शामिल है:एक नए टुपल में एक टुपल का सबसेट निकालने के लिए कैसे?
template<class... Ts>
struct Tester
{
std::tuple<Ts...> t;
template<class... T2s>
std::tuple<T2s...> Get() { ??? }
};
एक उदाहरण उदाहरण है Tester<int, float, char>
मैं अपने प्राप्त समारोह भीतरी टपल का केवल एक उपसमूह वापस जाने के लिए चाहते हैं। उदाहरण के लिए, tester.Get<int, char>
एक std::tuple<int, char>
लौटाएगा जिनके मूल्य आंतरिक टुपल के उपयुक्त सदस्यों से कॉपी किए गए हैं।
आप मान सकते हैं कि प्रत्येक प्रकार एक बार में अधिकतम बार दिखाई देता है और Get
केवल ट्यूबल में समझदार टेम्पलेट पैरामीटर के साथ बुलाया जाएगा।
"पहला मिलान प्रकार" भ्रामक है। यदि प्रकार एक से अधिक बार होता है, तो कार्यक्रम खराब हो जाता है। –