
Just an addition: Explicit specialization of std templates is legal. So if you _exactly_ know vector types for which your <<-operator should work you can write: namespace std { template<> ostream& operator<< (ostream& os, const vector<MyTypeX>& v) { copy(v.begin(), v.end(), ostream_iterator<T>(os, ";")); return os; } } By the way there was a big discussion about this on std list and I fluently read the upcoming Standard draft and saw that this paragraph changed. I not any longer sure if this will be allowed with the new standard. Best Regards, Ovanes On Mon, Apr 7, 2008 at 8:14 PM, Steven Watanabe <watanabesj@gmail.com> wrote:
AMDG
Scott McMurray wrote:
On Sun, Apr 6, 2008 at 5:15 PM, Andy Stevenson <andy.stevenson@uk.fujitsu.com> wrote:
Why doesn't the lexical_cast work below?
Your operator<<'s not in namespace std, so ADL cannot find it.
( I think that's it, anyways. )
Yes. It isn't legal to put it in namespace std, though.
In Christ, Steven Watanabe
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users