The code below doesn't compile under gcc-4.2.1 on a i686-pc-linux-gnu

template <class T> void foo(T);
void bar()
{
    &foo<int>;
}

The compiler returns the following error message:
teste.cpp: In function ‘void bar()’:
teste.cpp:4: error: statement cannot resolve address of overloaded function

As we're specifying a complete template function specialization, its address
should be returned correctly, and there's no overloaded function in scope,
there's nothing to resolve.


-- 
           Summary: Cannot specialize template function with address
                    operator
           Product: gcc
           Version: 4.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rodolfo at rodsoft dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33005

Reply via email to