Рассмотрим следующий код:
template<class T, class F> struct X {};
template<class T, class F, T F::* m> struct Y {};
struct Foo {
int member;
typedef X<int, Foo> x_type; // works well
typedef Y<int, Foo, &Foo::member> y_type; // ERROR
};
typedef Y<int, Foo, &Foo::member> y_type2; // OK
Почему компилятор генерирует ошибку? (VS2008)
New
Я отправил эту ошибку на connect.microsoft.com .