Code below builds w/o issues using earlier gcc and other compilers -
thought you might want to know about the issue. 

Thanks in adv, and happy holidays.

template < class T, const int & R >
class Cat {
public:
        Cat ( int );
};

template < class T, int & R >
Cat < T, R > ::  Cat ( int )
{
}

extern const int myConstant = 4;

int main ()
{
        Cat < float, myConstant > cat ( 2 );
        return 0;
}

bash-3.00$ g++ cat.cpp
cat.cpp:13: error: invalid use of incomplete type 'class Cat<T, R>'
cat.cpp:6: error: declaration of 'class Cat<T, R>'
bash-3.00$ g++ -v
Using built-in specs.
Target: sparc-sun-solaris2.10
Configured with: ../../gcc-4.2.1/configure
Thread model: posix
gcc version 4.2.1


-- 
           Summary: reference data template args appear to be broken in
                    4.2.1 ?
           Product: gcc
           Version: 4.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: johill at lanl dot gov
 GCC build triplet: sparc-sun-solaris2.10
  GCC host triplet: sparc-sun-solaris2.10
GCC target triplet: sparc-sun-solaris2.10


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

Reply via email to