I filed 1070, failure to build 22.locale.collate.cpp on Linux with gcc 4.7.1. 
Gcc, Comeau and Clang fail to compile it, Intel and Sun are fine. It looks to 
me like Intel and Sun compilers are not doing the right thing. A small test 
case and a patch have been attached. The failing code has been reduced to:

$ cat test.cpp; g++ -c test.cpp
template < class charT >
void f ()
{
    g (charT ('a'));
}

template < class charT >
void g (charT)
{
}

int h ()
{
    return f< char > (), 0;
}
test.cpp: In instantiation of 'void f() \[with charT = char\]':
test.cpp:14:23:   required from here
test.cpp:4:5: error: 'g' was not declared in this scope, and no declarations 
were found by argument-dependent lookup at the point of instantiation 
\[-fpermissive\]
test.cpp:8:6: note: 'template<class charT> void g(charT)' declared here, later 
in the translation unit

Liviu

Reply via email to