c++ - 返回常量的 boost 绑定(bind)或 lambda 仿函数

标签 c++ boost boost-bind boost-lambda

我可以使用 boost::bind 或 boost lambda 库来创建一个忽略其参数并始终返回常量的仿函数吗?

例如具有等效行为的仿函数:

int returnThree( SomeType arg ) { return 3; }

最佳答案

当然,使用

boost::phoenix::val(3);

查看 Live On Coliru

#include <boost/phoenix.hpp>

namespace p = boost::phoenix;
using namespace p::arg_names;

int main()
{
    auto p = p::val(42);
    return p() + p(/*ignored:*/77);
}

返回 84 作为退出代码。

关于c++ - 返回常量的 boost 绑定(bind)或 lambda 仿函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26611610/

相关文章:

c++ - C++ 中的基本图像处理库

c++ - 如何在 C++ 中等待像 mqwi_unlimited 这样的消息

c++ - 如何在OpenCV C++中使用FeatureDetector?

c++ - boost 链接器错误错误的工具集

c++ - 在 Cygwin 64 上包含 boost.asio 时出错

c++ - std::stringstream 作为函数的参数

c++ - Boost::asio 和 boost::bind: Functor 内存永远不会被释放

c++ - 无法退出递归

c++ - 如何使用 tr1 函数并绑定(bind)参数不断变化的函数?

c++ - 使用 boost 转换度分秒弧度 boost_1_48_0