<分区>
我正在尝试使用 std::result_of
来确定可调用对象的返回类型:
template <typename T>
std::result_of<T()>::type CallableWrapper(T callableObj) {
return callableObj();
}
代码中的其他地方:
auto i = CallableWrapper([](){return 1;});
这段代码由于某种原因无法编译。如果有人能告诉我原因,我将不胜感激。
<分区>
我正在尝试使用 std::result_of
来确定可调用对象的返回类型:
template <typename T>
std::result_of<T()>::type CallableWrapper(T callableObj) {
return callableObj();
}
代码中的其他地方:
auto i = CallableWrapper([](){return 1;});
这段代码由于某种原因无法编译。如果有人能告诉我原因,我将不胜感激。
最佳答案
尾随返回类型和decltype
应该是可能的,比如
template<typename T>
auto CallableWrapper(T callableObj) -> decltype(std::declval<T>()())
{
...
}
关于c++ - std::result_of 不编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31773994/