- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个过滤函数列表。如果这些函数中的任何一个返回“true”,我就不应该进一步处理事件。
std::any_of 似乎适合这个用例,但我希望保证过滤器函数按照它们添加到我的列表中的顺序被调用(因为它们可能有副作用)。因此,如果我使用 std::any_of,我需要知道它调用过滤器函数的顺序是确定的,从列表的 begin() 到 end()。
我检查了 std::any_of 上的 C++ 标准和顺序执行策略,但没有提到顺序保证。我没有在 cppreference 上找到关于订单保证的提及,也没有在 stackoverflow 上找到足够相似的已回答问题。
我的结论是没有订单保证。虽然大多数编译器可能会按我的顺序处理函数,但我不应该依赖它。
bool MyClass::event(QEvent* event)
{
std::vector<std::function<bool(QEvent*)> > functionList = getCurrentEventFilters();
const auto bFilter = std::any_of(functionList .begin(),
functionList .end(),
[&event](std::function<bool(QEvent*)> function) {return function(event);});
if (bFilter)
{
return true;
}
return Base::event(event);
}
最佳答案
关于 std::execution::sequenced_policy
:
The invocations of element access functions in parallel algorithms invoked with this policy (usually specified as
std::execution::seq
) are indeterminately sequenced in the calling thread.
关于 indeterminately-sequenced :
evaluations of
A
andB
are indeterminately sequenced: they may be performed in any order but may not overlap: eitherA
will be complete beforeB
, orB
will be complete beforeA
.
对我来说,这似乎是一个明确的声明,即你不能依赖事物的顺序。
没想到这个。。
原则上,这对您来说应该无关紧要。在有副作用的东西上调用 std::any_of
或 std::all_of
似乎很可疑。
关于c++ - std::any_of 与顺序执行策略一起使用时是否保证迭代顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57588668/
我正在尝试检查一个字符串以查看它是否满足所有要求,而这些要求之一是没有'*'或'%'。使用std::any_of检查整个字符串,并使其与isupper和islower一起使用,但无法为这2个字符弄清楚
这是我的代码: #include #include using namespace std; void input_guess_number(int guess_number[]){ in
我有一个过滤函数列表。如果这些函数中的任何一个返回“true”,我就不应该进一步处理事件。 std::any_of 似乎适合这个用例,但我希望保证过滤器函数按照它们添加到我的列表中的顺序被调用(因为它
于是我尝试使用Boost Hana的any_of方法,但是和实现中的描述不同的是,它仍然调用最先满足predicate的元素之后的元素。这是已知错误吗? 这是一个 MCVE : #include #
C++11 介绍 any_of至algorithm秒。 这似乎与 find_if 完全一样. 假设我有一个仿函数:function foo;还有一个数组:vector bar; 这两个调用似乎做了完全
我想检查 vector 中是否存在某个值。它最有可能位于 vector 的末尾,使用像这样的反向迭代器是否有意义: std::vector v{}; //... add a lot of values
考虑这段代码: #include #include #include struct Animal { virtual ~Animal() = default; }; struct Dog : A
我有一个需要运行 MongoDB 查询的要求,如下所示: db.collection.find({ $or : [{"field1" : "value1"}, {"field2" : "value2"
给定以下代码, std::vector numbers = {1, 2, 3, 4, 5}; std::any_of(std::begin(numbers), std::end(numbers),
所以我正在尝试使用 std::any_of()函数,但是 C++ Builder 6 说有一个错误: [C++ Error] Unit1.cpp(93): E2316 'any_of' is not
我无法在 for 循环 和 std::any_of 之间做出决定,例如: QString fileName = "Whatever"; // might contain a key-string w
我将 MongoDB 与 Mongoid 一起使用,并在我们查看权重等之前尝试将基本搜索作为占位符。any_of 方法似乎正在查找我的嵌入式文档,但不是那些由关系联系起来。有谁知道 any_of 是否
我遇到了 mongoid any_of 的问题。我正在尝试查找一个字段 > 0 或另一个字段 > 0 的对象。我的查询是: Model.any_of(best_friend_method.gt =>
一段工作代码: std::vector::iterator it = std::find_if(intersections.begin(), intersections.end(), [&](cons
我有一个与 STL 算法相关的问题。 来自 http://www.cplusplus.com/reference/algorithm/我看到 any_of()、all_of() 和 none_of()
假设我有一个std::vector并想知道它是否包含 3或者将迭代器获取到 3 。 我不想使用std::set或std::multiset无论出于何种原因。 我想在 std::execution::p
我正在使用带有太阳黑子 solr 的 rails 4.0。我希望这样做: (read_flag IS TRUE) OR ( (read_flag IS NIL) AND (fulltext param
我有以下类(class): Class Foo { public: bool operator ==(const Foo& f); ... private: set> poin
这是我最近在 VS2012 中编写的一些代码: ///Lambda: Returns true if the field is significant within a baseline co
我有这样的设置模型数据 [52] pry(main)> Setting.all.to_a => [#, #, #, #] 现在我想要一组具有特定类(class)的
我是一名优秀的程序员,十分优秀!