我一直在尝试找出lambda表达式的返回类型,以知道该函数是否返回void
.
我的第一个想法是使用std::invoke_result
,但这不能按预期工作,因为它不适用于希望两种类型的std::is_same
.
这是我一直在尝试的
auto lamb = [] ( int x ) { cout << x << endl; };
is_same<(invoke_result<decltype(lamb),int>),void>;
错误是:
trabapply2.cc:32:50: error: template argument 1 is invalid
is_same<(invoke_result<decltype(lamb),int>),void>;
有什么建议?