fre*_*low 6 c++ algorithm iterator stl type-traits
我只是想知道,因为你std::sort无论如何只能传递随机访问迭代器,为什么不通过首先为随机访问迭代器定义它来强制执行该限制?
#include <iterator>
#include <type_traits>
template <typename ForwardIterator>
typename std::enable_if<
std::is_same<
typename std::iterator_traits<ForwardIterator>::iterator_category,
std::random_access_iterator_tag>::value,
void>
::type sort(ForwardIterator begin, ForwardIterator end)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
我发现单行错误消息比实现中远远类型错误导致的错误消息的页面和页面更容易阅读.
您可以对其他算法执行相同的操作.标准的C++核心语言一直都足以表达这项任务,对吧?那么,为什么没有这样做的任何特殊原因?