fork download
  1. class Hage
  2. {
  3. private:
  4. static int a;
  5. int b;
  6. void f() {}
  7. };
  8.  
  9. int Hage::a;
  10.  
  11.  
  12.  
  13. using PA = int *;
  14. using PM = int Hage::*;
  15. using PMF = void (Hage::*)();
  16. extern PA pa{};
  17. extern PM pm{};
  18. extern PMF pmf{};
  19.  
  20. auto fack(PA v1, PM v2, PMF v3)
  21. {
  22. pa = v1;
  23. pm = v2;
  24. pmf = v3;
  25. return 0;
  26. }
  27.  
  28. template<PA v1, PM v2, PMF v3> int dummy = fack(v1, v2, v3);
  29. template int dummy<&Hage::a, &Hage::b, &Hage::f>;
  30.  
  31. int main()
  32. {
  33. (*pa)++;
  34.  
  35. Hage obj;
  36. (obj.*pm)++;
  37. (obj.*pmf)();
  38. }
  39.  
Success #stdin #stdout 0s 16064KB
stdin
Standard input is empty
stdout
Standard output is empty