
Do you think that it could be an interest in extending the C++0X standard to take care of these extrinsically defined conversions between unrelated types?
To begin with I personally do not believe there is any capacity or time to look at extending C++0x. Already quite a few things are being re-scheduled for a later date. Second, I feel that in general terms conversions between "unrelated" types can only be done on individual basis and to be addressed by making those types "related", i.e. via Foo::Foo(Other const&) constructor or operator Other() converter. Another approach to generalizing conversion is only IMHO possible by defining/relying on a certain quality that the respective classes possess. That is, lexical_cast requires op>>() and op<<() for a class to become a member of the "club". Therefore, I do not feel that generalizing of such approach on the Standard level is possible.
Have a sens to have extrinsec conversions which implicitly convert? Should this convert_to<T> operator be considered as a friend class of T?
I am confused. I'd think that conversions that you call "extrinsec" are orthogonal to the participating classes and, therefore, always explicit, i.e. int i = str; will not compile when int i = lexical_cast<int>(str); will. And I would not expect such conversion facility (like convert_to or lexical_cast) to be friends to anyone as it seems intrusive. Just my 2c. V.