gpt4 book ai didi

c++ - 使用 boost 创建一个始终返回 true 的 lambda 函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:48 25 4
gpt4 key购买 nike

假设我有一个采用某种形式的谓词的函数:

void Foo( boost::function<bool(int,int,int)> predicate );

如果我想用一个始终返回 true 的谓词来调用它,我可以定义一个辅助函数:

bool AlwaysTrue( int, int, int ) { return true; }
...
Foo( boost::bind( AlwaysTrue ) );

但是有没有办法调用这个函数(可能使用 boost::lambda)而不必定义一个单独的函数?

[编辑:忘了说:我不能使用 C++0x]

最佳答案

UncleBens 在 Scharron 的回答中对此发表了评论,但我认为这实际上是最好的答案所以我偷了它(对不起 UncleBens)。只需使用

Foo(boost::lambda::constant(true));

the documentation for Boost.Lambda 中所述,只有仿函数的最小元数为零,最大元数是无限的。因此,传递给仿函数的任何输入都将被忽略。

关于c++ - 使用 boost 创建一个始终返回 true 的 lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3558095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com