是std :: any_of遵循短路逻辑所需的
Is std::any_of required to follow short circuit logic?
给定以下代码,
std::vector<int> numbers = {1, 2, 3, 4, 5};
std::any_of(std::begin(numbers), std::end(numbers),
[](int number) { return number > 3; } );
STD :: Any_of(按标准)返回4?
标准本身并没有提出任何困难的要求。但是人们可能会间接鼓励它([alg.any_of]):
template <class InputIterator, class Predicate> bool any_of(InputIterator first, InputIterator last, Predicate pred); template <class ExecutionPolicy, class ForwardIterator, class Predicate> bool any_of(ExecutionPolicy&& exec, ForwardIterator first, ForwardIterator last, Predicate pred);
返回:false如果[第一个,最后一个)是空的,或者如果没有迭代器i在范围内[第一个,最后一个),以至于pred(*i)是正确的,true 否则。
复杂性:最多最后一个 - 谓词的第一个应用。
虽然一个完美符合的实现可能应用谓词恰好 last-first
次,但对我来说,措辞听起来很鼓励尽快退出。
请注意,几乎不可能询问接受ExecutionPolicy
的过载相同。从那时起,评估顺序就不知道。
在不太正式的注释中,的任何实现 在谓词是正确的那一刻,都会质疑其作者的凭据。
相关文章:
- 哪些类型可以转换为std::any
- 引用 std::any 或 not_yet_in_std::whatever 的惯用方式是什么?
- std::is_reference from std::any
- 是否可以从 std::any 创建 std::any 与 std::reference_wrapper?
- "reserved for any use"的含义是什么?
- boost::any 如何检查空值/未定义的值
- 为什么当你将函数的返回值乘以零时它不会短路?
- 使用 std::map 存储在 std::any 中,然后通过 std::any_cast 访问
- 可以有效地转换 std::any 与 std::any_cast
- 避免使用 std::any 编写相同的重复类型检查代码
- 短路运算符在enable_if
- 广义 std::function (std::any 表示可调用对象)
- 如何在 c++17 中获取存储在 "any" 中的数据大小?
- 从 Any 包中提取和匹配 protobuf 消息类型名的首选方法
- 如何获取"any"当前持有的类型的名称?
- 在可变参数模板函数中存储参数而不使用 boost::any
- 如何将参数包扩展为向量<any>
- 如何使用openssl续订过期的证书密钥或创建自签名证书密钥any.pem Poco c ++
- 在VS2015中访问std::any
- std::any 跨共享库边界在 mingw 中