c++/1728: Weird behaviour with specialization of inner class constructor of template class

wolfgang.bangerth@iwr.uni-heidelberg.de wolfgang.bangerth@iwr.uni-heidelberg.de
Mon Jan 22 05:46:00 GMT 2001


>Number:         1728
>Category:       c++
>Synopsis:       Weird behaviour with specialization of inner class constructor of template class
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jan 22 05:46:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Wolfgang Bangerth
>Release:        unknown-1.0
>Organization:
>Environment:

>Description:
With today's CVS, I see the following:

deal.II/deal.II> cat t.cc
class vector {};
template <int dim> struct X {
    struct Y    {
        Y();
        vector x1;
        vector x2;
        vector x3;
        vector x4;
        vector x5;
        vector x6;
        vector x7;
    };
};
template <> X<1>::Y::Y() {};

deal.II/deal.II> c++ -c t.cc -o /dev/null
t.cc:14: too few template parameter lists in declaration of `X<1>::Y::Y()'
t.cc:14: no `X<1>::Y::Y()' member function declared in class `X<1>::Y'


Funny  enough, if I remove one of the seven member variables,
it compiles fine. More than seven member variables also
triggers the error.

Regards
  Wolfgang
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the Gcc-bugs mailing list