戻り値がラムダ関数 (テンプレート パラメーターによって決定される) へのポインターであるテンプレートを作成する必要があります。
コンパイラのフィードバック:
error: no matching function for call to ‘laptr(int)’
コードの何が問題になっていますか? 問題を解決するには?
#include <iostream>
using namespace std;
template <typename T>
T laptr(int par);
int main(){
laptr(1);
return 0;
}
///////////
template <typename T>
T laptr(int par)
{
if (par == 1)
{
int p1 = [](int a, int b)->int{return a*b; };
return p1;
}
else
{
double p2 = [](double a, double b)->double{return a + b; };
return p2;
}
}