根据我的其他问题.
请考虑以下代码
template<typename T, int N>
struct A {
  typedef T value_type; // save T to value_type
  static const int size = N; // save N to size
};
看,我可以使用value_type和size作为模板参数.
typedef A<int, 2> A1;
typedef A<A1::value_type, A1::size + 3> A2;  // OK,  A2 is A<int,5>
现在我想用指向成员的指针做同样的事情:
struct Foo {
    int m;
    int r;
};
template<int Foo::*Mem>
struct B {
   static int Foo::* const mp;
};
template<int Foo::*Mem>
int Foo::* const B<Mem>::mp = Mem; // …