fppm.cpp

The following code example is taken from the book
C++ Templates - The Complete Guide, 2nd Edition
by David Vandevoorde, Nicolai M. Josuttis, and Douglas Gregor,
Addison-Wesley, 2017
© Copyright David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor 2017


template<int N>
class X {
  public:
    using I = int;
    void f(int) {
    }
};

template<int N> 
void fppm(void (X<N>::*p)(typename X<N>::I));

int main() 
{
    fppm(&X<33>::f);  // fine: N deduced to be 33
}