繁体   English   中英

来自lambda的返回类型的模板化函数返回类型

[英]Templated function return type from return type of a lambda

我正在尝试为函数提供所需的返回类型,该函数将返回无序映射,该映射以模板化迭代器Iter的值类型为键,并在调用迭代器的值时返回lambda(F)的结果。 我正在C ++ 1y模式下使用GCC 4.9.1进行编译。

据我所知,但这可能是完全错误的方向,因为我很少有模板经验。

template<typename Iter, typename Func>
unordered_map<Iter::value_type, decltype(F(*Start)) Map(Iter Start, Iter End, Func F)

任何建议表示赞赏。

template< class Iter, class Func>
auto Map( Iter Start, Iter End, Func F )
    -> unordered_map<typename Iter::value_type, decltype(F(*Start))>

通常,您可以利用std::function推断出已知函数类型的结果类型,

template< class Func >
struct ResultOf
{
    typedef typename std::function<
        typename std::remove_pointer<Func>::type
        >::result_type T;
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM