struct A { static const int MAX=3; int a[MAX]; }; template void fun(U V::*mobj) { } main() { // fun(&A:a[1]); // not working, see below } /* error C2597: illegal reference to non-static member 'A::a' */