Dan*_*ani 6 c++ return-type c++11
我有以下功能:
inline auto iterateSomething(obj & o)
{
auto iterators = baseIterator(o);
auto tranformer = boost::bind(transofrmToSomething, _1, o);
typedef boost::transform_iterator<decltype(tranformer), decltype(iterators.first)> iterator_t;
iterator_t begin(iterators.first, tranformer);
iterator_t end(iterators.second, tranformer);
return std::make_pair(begin, end);
}
Run Code Online (Sandbox Code Playgroud)
你可以看到我不知道返回值,即使我把int放在那里,然后从错误消息中复制类型,它是一个非常长的类型...
有没有办法指定返回类型作为类型功能中唯一的回报?是否有任何解决方法不涉及返回类型中的巨大类型?
我认为你应该按照 Raymond Chen 在评论中建议的那样去做:
将 typedef 移到函数之外。然后您可以使用它来声明返回类型。
如果雷蒙德发布了一个答案,那么它应该优先于我的答案被接受——我发布这个答案是为了让位掩码的答案不是唯一的答案,因为我认为这是一种比疾病更糟糕的治疗方法。
| 归档时间: |
|
| 查看次数: |
173 次 |
| 最近记录: |