• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * It is known that this code not compiled by following compilers:
3  *   gcc 2.95.3
4  *   gcc 3.3.3
5  *   gcc 3.4.1
6  *   gcc 4.1.1
7  *
8  * It is known that this code compiled by following compilers:
9  *
10  *   MSVC 6
11  *   MSVC 8 Beta
12  */
13 
14 /*
15  * Indeed this code is wrong: explicit template specialization
16  * have to appear out-of-class.
17  *
18  */
19 
20 struct A
21 {
22   private:
23     struct B
24     {
25         template <typename T>
fA::B26         static void f( T& ) {}
27 
28         template <bool V>
29         struct C
30         {
31             template <typename T>
fA::B::C32             static void f( T& ) {}
33         };
34 
35         template <>
36         struct C<true>
37         {
38             template <typename T>
fA::B::C39             static void f( T& ) {}
40         };
41     };
42 };
43 
44