确定传递给函数的迭代器顺序的正确性的方法

时间:2015-09-04 08:37:36

标签: c++ c++11 stl iterator c++14

STL 的形式有很多功能:

result_type algorithm(ForwardIterator beg, ForwardIterator end);

result_type algorithm(BidirectionalIterator beg, BidirectionalIterator end);

是否有可移植且方便的方法来确定end迭代器是否可以通过前者的简单递增从beg到达(在双向迭代器的情况下反之亦然)?在上述算法的第一行中,应该如何看似对应的assert(?);

目的是在UB发生之前尽早发现std::list< int > l(10); std::iota(std::end(l), std::begin(l), 0);之类的错误。

是否有任何建议或Range-V3库中有什么东西可以解决这个问题?

0 个答案:

没有答案