Is there a legal way to print tuples and pairs using operator<<?
I have a set of templates/functions that allow me to print a tuple/pair assuming that each type in the tuple/pair has operator<< defined for it. Unfortunately, due to 17.4.3.1, it is illegal to add my operator<< overloads to std . Is there another way to get ADL to find my operator<< ? If not, is there any actual harm in wrapping my overload in namespace std{} ? The code for anyone interested: (I'm using gcc-4.5) namespace tuples { using ::std::tuple; using ::std::make_tuple; using ::std::get; namespace detail { template< typename...args > size_t size( tuple<args...> const& ) { return sizeof..