【发布时间】:2016-11-18 12:06:34
【问题描述】:
如何编写一个概念来描述启用基于范围的 for 循环的类型?
一种尝试是:
template < typename Range > concept bool RRange
= requires(Range range) {{std::begin(range),std::end(range)};};
但我真正想要的是这样的:
template < typename Range > concept bool RRange
= requires(Range range) {{for(auto&& item : range);};}; // compile error
也就是说,RRange 是表达式 for(auto&& item : range); 对其有效的所有类型的概念。实现这一目标的最佳方法是什么?
我正在使用带有g++ -std=c++1z -fconcepts 的 GCC7 快照。
【问题讨论】:
标签: c++ range c++-concepts