在C#中使用LINQ,我会写:如何使用boost.lambda和boost.range从容器中进行选择?
myContainer.Select(o => o.myMember);
我不知道语法应该是什么C++ /λ/范围。我只是试图将一些对象类型的容器调整到一个字符串容器,以便我可以将它传递给boost :: algorithm :: join。我试过类似的东西:
using namespace boost::adaptors;
using namespace boost::lambda;
string result = join(myContainer | transformed(_1.myMember), ", ");
但显然这不起作用或我不会在这里。 ;)
我想使用lambda,而不是一个单独的函数的赘述。
非常好。但不能编译boost 1.43(使用lambda方法,而不是phoenix): boost/iterator/transform_iterator.hpp(43):error C2039:'result_type':不是'boost :: lambda :: lambda_functor的成员 '' –
2011-06-14 21:46:40
@MattChambers:编辑的答案。 – ildjarn 2011-06-14 21:57:27
如果期待result_of为什么它抱怨result_type? :/ BLL支持在函数对象类中声明带有名为result_type的成员typedef的函数对象的返回类型的标准库约定。 – 2011-06-14 22:04:59