The following code compiles perfectly under the MS compiler, but fails miserably under the gcc 3.4.2 compiler with the error message "shadows template parm" for lines 03 and 18 (and also 04 and 19). Can someone please tell me what is gcc complaining about, because as far as I can see this is fully conformant code.
01: template
02: <
03: class T,
04: template<class C> class Policy
05: >
06: class CTest : public Policy<T>
07: {
08: public:
09: CTest() { }
10: virtual ~CTest() { }
11:
12: protected:
13: static T* m_var;
14: };
15:
16: template
17: <
18: class T,
19: template<class C> class Policy
20: >
21: T* CTest<T, Policy>::m_var = NULL;
01: template
02: <
03: class T,
04: template<class C> class Policy
05: >
06: class CTest : public Policy<T>
07: {
08: public:
09: CTest() { }
10: virtual ~CTest() { }
11:
12: protected:
13: static T* m_var;
14: };
15:
16: template
17: <
18: class T,
19: template<class C> class Policy
20: >
21: T* CTest<T, Policy>::m_var = NULL;
Last edited: