This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Member specialisation bug (?) in 3.3 (C++)


It's a bug. I add this to my to-do list for bugs to fix for GCC 3.3.1.

--Kriang


Ole Laursen wrote:
Hi,

Debian has switched to GCC 3.3 for unstable which renders programs
that use gtkmm unusable. The problem is that a certain member template
specialisation pattern is used in the headers. The problem can be
reproduced with the following snippet:

  class X
  {
  private:
    template <typename T> struct Y;   // line 4
  };

  template <> struct X::Y<int>
  {                                   // line 8
  };

  int main()
  {
  }

Compiling this with GCC 3.3 gives

  $ g++ -o test test.c++ -Wall
  test.c++:4: error: `template<class T> struct X::Y' is private
  test.c++:8: error: within this context

whereas it worked with 3.2. Is this a bug in the compiler or is
specialisation of private template members simply not possible in C++?





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]