C'est une suite à ma question précédente sur l' impression des conteneurs STL, pour lequel nous avons réussi à développer un très élégant et entièrement de solution générale.
Dans cette prochaine étape, je voudrais inclure d'impression pour std::tuple<Args...>
, à l'aide de variadic templates (si ce n'est strictement C++11). Pour std::pair<S,T>
, je dis simplement
std::ostream & operator<<(std::ostream & o, const std::pair<S,T> & p)
{
return o << "(" << p.first << ", " << p.second << ")";
}
Qu'est-ce que l'analogue de la construction pour l'impression d'un tuple?
J'ai essayé différents bits de l'argument de modèle de pile déballage, en passant indices autour et à l'aide de SFINAE à découvrir quand je suis au dernier élément, mais sans succès. Je ne devrais pas vous importuner avec mon code cassé; la description du problème, je l'espère, straight-forward assez. Essentiellement, je tiens a le comportement suivant:
auto a = std::make_tuple(5, "Hello", -0.1);
std::cout << a << std::endl; // prints: (5, "Hello", -0.1)
Les points Bonus pour le même niveau de généralité (char/wchar_t, paire de délimiteurs) comme la question précédente!