C++ 比较:文件中的差异

C++ 比较:文件中的差异,c++,compare,lower-bound,C++,Compare,Lower Bound,这是我上一篇文章的后续文章 在下,对于以下过载 template< class ForwardIt, class T, class Compare > ForwardIt lower_bound( ForwardIt first, ForwardIt last, const T& value, Compare comp ); (until C++20) template< class ForwardIt, class T, class Compare > con

这是我上一篇文章的后续文章

在下,对于以下过载

template< class ForwardIt, class T, class Compare > ForwardIt lower_bound( ForwardIt first, ForwardIt last, const T& value, Compare comp ); (until C++20)

template< class ForwardIt, class T, class Compare > constexpr ForwardIt lower_bound( ForwardIt first, ForwardIt last, const T& value, Compare comp ); (since C++20)
templateForwardIt下限(ForwardIt first,ForwardIt last,const T&value,comp比较);(直到C++20)
模板constexpr ForwardIt下限(ForwardIt first,ForwardIt last,const T&value,comp comp);(从C++20开始)
下节

类型要求

有人提到

比较必须满足BinaryPredicate的要求。事实并非如此 需要满足比较

根据对后者的需求描述

std::lower_bound
在标准库设施中提到,这些设施需要比较类型


这种差异仅仅是一种疏忽还是有更多的原因?

是否存在差异?有一个措辞上的差异:“必需”和“期望”。(有可能期望得到小费而不要求得到小费。)我不知道这个词的选择是多么有意的。@JaMiT这不会让读者产生歧义吗?如果比较的更严格要求不适用于下限,那么文档中不应该提到该要求以何种方式被放宽了吗?如果读者是我,它不会让我感到模棱两可。我读它是因为
std::lower_bound
是在满足比较概念的期望下编写的。编写代码后,分析表明,合理的结果只需要满足二进制谓词概念。因此,需要比较(并保留参数名),但需要BinaryPredicate。假设我的阅读是准确的,那么是否应该明确指出更多的内容将取决于cppreference.com的编辑。