2013-02-23 72 views
8

सी ++ में 11 एक समारोह के लिए दो भिन्न टेम्पलेट्स संभव है?एक समारोह के लिए दो विविध टेम्पलेट्स?

template <class... Types, class... Args> 
void f(const std::tuple<Types...>& t, Args&&... args) 
+0

तुम्हारा मतलब 'टेम्पलेट

यदि नहीं, वहाँ एक चाल ऐसा ही कुछ लिखना है > शून्य एफ (ए 1 और& ... ए 1, ए 2 और& ... ए 2) '? – Yakk

+0

मुझे आश्चर्य है कि क्या मैंने –

+0

@Yakk को गलत समझा नहीं है: मुझे लगता है कि जो आप लिखते हैं वह कानूनी नहीं है (कंपाइलर का ए 1 और ए 2 के बीच कहीं "कट" करने का कोई मतलब नहीं है)। – Vincent

उत्तर

12

कि पूरी तरह से कानूनी है::

#include <tuple> 

using namespace std; 

template <class... Types, class... Args> 
void f(const std::tuple<Types...>& t, Args&&... args) 
{ 
    // Whatever... 
} 

int main() 
{ 
    std::tuple<int, double, bool> t(42, 3.14, false); 
    f(t, "hello", true, 42, 1.0); 

    return 0; 
} 
+0

धन्यवाद! मुझे नहीं पता था कि यह कानूनी था और मैंने सोचा कि इसे एक तरह का मेटाप्रोग्रामिंग हैक चाहिए। – Vincent

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^