I'm porting a large library to Windows and ran into the code below, which does not compile in either MSVC 2008 or 2010 (my compiler targets on Windows):class A{ template<typename C, template<typename> class B > typename B<C>::type func() const;};template< class C, template<typename> class B>typename B<C>::type A::func() const{ return 1;}If I modify it to the form below, it compiles quite happily:class A{ template<typename C, template<typename> class B > typename B<C>::type func() const { return 1; }};This works fine in gcc 4.4, 4.5 and clang (any version).
Visual Studio/Team Foundation Server/.NET Framework Tooling version
Steps to reproduce
Product Language
Operating System
Operating System Language
Actual results
Expected results