This means "a pointer to a member of class V , where the type of the element is U ". For instance,
struct X { int x = 0; }; // ... int X::*p = &X::x; // <== Declares p as pointer-to-member ST<decltype(&X::x)> s; // <== Will instantiate your template specialization, // with U = int and V = X ST<int X::*> t; // <== Will instantiate your template specialization, // with U = int and V = X
source share