Quindi, se ho qualcosa di simileuscita Sovraccarico << operatore per una classe per stampare la tupla all'interno
template<typename... Args >
class tuple_class
{
public:
std::tuple<Args...> tup;
/*I left out the other functions */
};
voglio sovraccaricare l'operatore < < in modo che in modo ricorsivo stampare la tupla quando viene chiamato su la classe.
ex.
auto a = tuple_class(1, 2 ,3);
std::cout << a << endl;
si spera stampare '123'
Ho visto altri esempi di stampanti tuple ma non posso applicarlo alla mia classe senza avere un mucchio di guai
penso che dovrei iniziare con una funzione membro simili
template<typename... Args>
friend std::ostream& operator<<(std::ostream& os, const my_tuple<Args...> &m);
e quindi la funzione effettiva all'esterno della classe
template<typename... Args>
std::ostream& operator<<(std::ostream& os, const my_tuple<Args...> &m)
{
os << "SOMETHING" << std::endl;
return os;
}
che in realtà funzionava quando chiamo l'operatore < < sulla mia classe. Ma non ho idea di come fare in realtà stampare la tupla.
Qualsiasi aiuto sarebbe apprezzato
È necessario srotolare ricorsivamente il modello variadic attraverso una specializzazione parziale. Vedi [questa domanda] (http://stackoverflow.com/questions/7124969/recursive-variadic-template-to-print-out-the-contents-of-a-parameter-pack). – denniskb