Hello, I am using boost 1_30_0 (NOT current cvs snapshot) and Visual Studio.NET 2003. There is a strange problem with lexical_cast in the following scenario (rough aproximation of my code, all in one header): std::ostream& operator<<(std::ostream& out, const ConcreteType& v);
namespace foo { namespace bar { template <class T> class Formatter { public: std::string getFormattedValue(const T&) { return boost::lexical_cast<std::string>(T); } } [,,,] } } When I try to use Formatter<ConcreteType>::getFormattedValue(objOfConcreteType), the lexical_cast fails with compiler claiming that there is no operator<< that accepts const ConcreteType (or no acceptable conversion). Now, even more funny is that if I put the operator<< in boost namespace, everything is fine (??). Anyone else seeing this? For the moment I am assuming this is a compiler bug, but if I missed some dusty (or not so dusty :) corners of C++ that explain this (in favor of compiler), someone please enlighten me, this is driving me nuts. Regards, Drazen _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost