| /* |
| * It is known that this code not compiled by following compilers: |
| * gcc 2.95.3 |
| * gcc 3.3.3 |
| * gcc 3.4.1 |
| * gcc 4.1.1 |
| * |
| * It is known that this code compiled by following compilers: |
| * |
| * MSVC 6 |
| * MSVC 8 Beta |
| */ |
| |
| /* |
| * Indeed this code is wrong: 1. explicit template specialization |
| * have to appear out-of-class; 2. specialized struct C have to |
| * have function f. |
| * |
| */ |
| |
| struct A |
| { |
| private: |
| struct B |
| { |
| template <typename T> |
| static void f( T& ) {} |
| |
| template <bool V> |
| struct C |
| { |
| template <typename T> |
| static void f( T& ) {} |
| }; |
| |
| template <> |
| struct C<true> |
| { |
| }; |
| }; |
| }; |
| |