Problems with templates

Hubert Felber Felber@abacus.ch
Tue Jun 13 00:14:00 GMT 2000


Hi,

Can anybody please help me?

I have problems compiling a nested template class, I get the error message:

Wrapper.h:10: declaration of 'class T'
Wrapper.h:6:   shadows template parm 'class T'

I am using g++ 2.95.2. Using another compiler on a non linux platform, this template compiles fine.

How can I change my code that it compiles fine with gcc 2.95.2 ?


Here is the snippet:


template <class T> class CWrapper  // line 6
{

  template <class T> class CCounted         //line 10
  {
    friend class CWrapper<T>;
  private:

    inline CCounted(T* pT) : Count(0), my_pT(pT) 
    {...  } 

    inline ~CCounted()
    {...}

    inline unsigned AddRef()
    { }
    inline unsigned Release() 
    {}

public:
    T* const my_pT;
  };
public:

  inline CWrapper(): m_pCounted(0) {}

  inline CWrapper(T* pT)
  {
    m_pCounted = new CCounted<T>(pT);
    m_pCounted->AddRef();
  }


.....

snipped the rest
....
private:


///////////////////////////////////////////////////////////////////////////////
  CCounted<T>* m_pCounted;

};




More information about the Gcc-help mailing list