Home | History | Annotate | Download | only in compiler
      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>
     26         static void f( T& ) {}
     27 
     28         template <bool V>
     29         struct C
     30         {
     31             template <typename T>
     32             static void f( T& ) {}
     33         };
     34 
     35         template <>
     36         struct C<true>
     37         {
     38             template <typename T>
     39             static void f( T& ) {}
     40         };
     41     };
     42 };
     43 
     44