问题标签 [boost-lambda]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在堆上生成对象的函数式编程技术
有在堆上生成 N 类 A 对象的代码示例:
代码使用仿函数“Generator”和“generate_n”算法来完成这项工作。我很想简化这项任务。boost:lambda, boost::phoenix 是可能的候选者(如果是的话?),怎么做?或者也许还有其他选择?
c++ - 将 boost::lambda 与 STL 容器一起使用
完整代码在https://gist.github.com/1341623
我想对另一个向量的索引数组(或向量)进行排序,以便数组按另一个向量的索引排序。但是,vector::at 的类型无法解析。
我做了如下尝试:
还行吧
我想根据数组对索引进行排序,但占位符不会重载 operator[]
但是,它们重载了 operator+ 和 operator*
我想根据向量对索引进行排序,但编译器无法解析“vector::at”的类型。
在网上搜索后,我发现我必须指定重载的方法类型,但编译器仍然说它无法解析类型。
我试图获得我想要的 vector::at 版本,但转换似乎失败了。
我可以为这个问题做些什么?还是我误解了什么?
c++ - boost::bind、boost::lambda::bind 和 boost::phoenix::bind 之间的区别
我试图了解这些不同绑定方法之间的区别。boost::bind 和 boost::phoenix::bind也有类似的问题
但是,如果有人可以用例子来解释这一点,那就太好了。boost::phoenix 是否真的是 boost::bind、booost::lambda 库的超集?
c++ - C++ boost lambda 和 ==-operator 的问题
有:
和:
然后我有这个电话(哪些错误):
并worms()
返回一个Ref<Iterator<CWorm*> Ref>
并且存在int CWorm::getID();
(这是一个成员函数)。
这将失败,并出现关于二进制表达式的无效操作数的非常冗长的错误。一部分:
/usr/local/include/boost/lambda/detail/operator_lambda_func_base.hpp:222:1:{222:1-222:63}{222:1-222:63}:错误:二进制表达式的操作数无效('typename lambda_functor_base >, tuple >, int (CWorm::*const)() const, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type> >::sig >::type'(又名'member_pointer_caller')和'int') [3]
为什么?
我该如何解决?
如果我做得更详细一些,即不是通过 lambdas,而是我手动声明另一个函数并使用boost::bind
,它就可以工作。即像这样:
boost - Boost.Lambda - 取消引用占位符
有没有办法取消引用 lambda 表达式中的占位符?
我知道我可以进行绑定:
,但我想用 if 语句等构建更复杂的表达式。
c++ - MSVC 和 boost::lambda::bind 错误:T0:标准参数不允许
此代码可以使用 GCC 和 Clang 编译,但不能使用 MSVC 2010:
给出错误:
(题外话:我怎样才能得到英文的错误?)
使用&eventStart
代替也不起作用,但错误是不同的:
为什么?代码似乎正确。
当我删除函数的默认参数时它会eventStart
起作用。
c++ - boost::lambda std::map
我想通过使用 boost::lambda 来简化我的代码。这是我的代码:
最后这是产生的错误代码:
错误 C2664:“Tools::Serilizer::makePair”:无法将参数 2 从“const boost::lambda::lambda_functor”转换为“const Tools::Serilizer::Serilizable &”
任何提示如何解决这个问题?
c++ - 将 boost lambda 与复合表达式一起使用
我有一个 Visual Studio 2008 C++03 应用程序,我想在其中使用 boost::lambda 来执行此操作:
不幸的是,这不起作用:
什么是让 boost::lambda 执行复合表达式的正确方法?我需要绑定 != 运算符吗?
谢谢
c++ - 如何使用 Boost (Lambda?) 使 std::sort() 更容易?
假设我有
如果我想在 C++03 中对一堆Value
索引进行排序,我必须写一些像这样乏味的东西:
有没有办法用 Boost(也许用 Boost.Lambda)更简洁地写这个,最好是在 1 行中?
boost - 如何在 c++ 模板中使用 boost::is_same 以及 boost::lambda::bind
我正在尝试将泛型连接boost::function<void(void)>
到许多不同签名的 boost::signals2 。我可以使用 boot::lambda::bind 通过将返回值作为绑定参数的一部分传递来执行绑定部分,但是当返回类型为 void 时会出现问题
例子:
我不断收到编译错误
从错误中可以看出,带有 boost::is_void 的 if 条件(boost::is_same 也不是)似乎不起作用,有人知道为什么吗?有没有更好的方法来做这个绑定?
谢谢,萨克