
Stefan Slapeta wrote:
Daniel James wrote:
[many things]
FYI, Thorsten checked in a test case (range/adl_conformance) to check ADL conformance on various compilers before he left for vacation.
It's not that this testcase tells us much about the range library, but the results are nevertheless interesting and show that some compilers still have their difficulties! Among these are the (current) Microsoft compiler(s), but also Intel: once again the tests pass on Windows and fail on Linux (one should mean they have different front ends)!
If there really is an intention to extend the use of ADL in the boost library, one perhaps should ask Microsoft to fix the issues in VC 8.
Maybe the following helps to create a more robust version of the idiom, as it doesn't need 'using' at all: #include <iostream> namespace A { namespace detail { template< typename T > void f( const T& ) { std::cout << 1 << std::endl; } template< typename T > void adl_f( const T& x ) { f( x ); } } template< typename T > void f( const T& x ) { detail::adl_f( x ); } } namespace B { class C {}; void f( const C& ) { std::cout << 2 << std::endl; } } int main() { A::f( 42 ); B::C c; A::f( c ); } Regards, Daniel -- Daniel Frey aixigo AG - financial solutions & technology Schloß-Rahe-Straße 15, 52072 Aachen, Germany fon: +49 (0)241 936737-42, fax: +49 (0)241 936737-99 eMail: daniel.frey@aixigo.de, web: http://www.aixigo.de The hacks that we write today become the bugs of tomorrow.