std::result_of 不编译



我试图使用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>()())
{
    ...
}

相关内容

  • 没有找到相关文章

最新更新