language: C++11 (gcc-4.7.2)
date: 474 days 7 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
using namespace std;
 
int sumall(int a) { return a; }
int sumall(int a, int b) { return a+b; }
 
template<typename A1, typename A2, typename R>
auto doit( A1 a1, A2 a2, R (*f) (A1,A2)) -> R {
    return f(a1, a2);
}
template<typename A1, typename R>
auto doit( A1 a1, R (*f) (A1)) -> R {
    return f(a1);
}
 
int main() {
   cout << doit(7, 6, sumall) << endl;
   cout << doit(10, sumall) << endl;
}