Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<class T, class U>
- struct is_same {
- static const bool result = false;
- };
- template<class T>
- struct is_same<T, T> {
- static const bool result = true;
- };
- template<class ToFind, class Ret, class T, class Arg>
- bool hasArg1(ToFind, Ret (T::*)(Arg)){return is_same<ToFind, Arg>::result;}
- template<class ToFind, class Ret, class T, class Arg1, class Arg2>
- bool hasArg1(ToFind, Ret (T::*)(Arg1, Arg2)){return is_same<ToFind, Arg1>::result;}
- struct A
- {
- int fun1(int a){return a+1;}
- };
- printf("int arg1: %sn", hasArg1(1, &A::fun1) ? "yes" : "no");
- hasArg1<int>(&A::fun1)
- hasArg1(1, &A::fun1)
- template<class ToFind, class Ret, class T, class Arg>
- bool hasArg1(Ret (T::*)(Arg)){return is_same<ToFind, Arg>::result;}
- template<class ToFind, class Ret, class T, class Arg1, class Arg2>
- bool hasArg1(Ret (T::*)(Arg1, Arg2)){return is_same<ToFind, Arg1>::result;}
Add Comment
Please, Sign In to add comment