2
我想使使用的std ::函數的返回值類型通用的,但它不工作,代碼: 調試代碼,可以發現:http://cpp.sh/5bk5如何從std :: function中推斷返回值類型?
class Test
{
public:
template <typename R, typename F = std::function<R()>>
R f(F&& op) {
op();
}
void t() {
int a = 10;
f([this, a]() { return "chars"; });
}
};
int main()
{
t::Test test;
test.t();
return 0;
}
也許用'result_of'讓你可以只編譯C++ 11在返回類型? –
您是否嘗試過使用void *?這是Cish的方式有泛型類型。 – mgarey