相当于boost :: phoenix的是什么?

无效指针

我有以下内容:

class Foo
{
public:
   std::string const& Value() const { return /*Return some string*/; }
};

typedef std::list<Foo> FooList;
FooList foos; // Assume it has some valid entities inside

std::vector<int> ints;

FooList::const_iterator it, iend = foos.end();
for (it = foos.begin(); it != iend; ++it)
{
   ints.push_back(boost::lexical_cast<int>(it->Value()));
}

如何使用std::for_each实现for循环boost::phoenix我尝试了几种方法,但是它真的很难看(我有大量的嵌套bind()语句)。我基本上只是想看看干净和可读的boost phoenix如何使它成为for循环,所以我没有写太多的样板代码来迭代具有1-2行特殊逻辑的容器。

有时,在C ++ 11之前执行lambdas似乎太难以理解和难以维护,因此不值得为此烦恼。

看到

假设您准备了Phoenix友好的函数对象:

namespace lexical_casts
{
    template <typename T> struct to_
    {
        template <typename/*V*/> struct result { typedef T type; };
        template <typename V>
        T operator()(V const& v) const { return boost::lexical_cast<T>(v); }
    };

    boost::phoenix::function<to_<int> > to_int;
}

您可以编写如下内容:

BOOST_AUTO(value_of, phx::lambda[ phx::bind(&Foo::Value, arg1) ]);

std::vector<int> ints;
boost::transform(
        foolist,
        back_inserter(ints), 
        lexical_casts::to_int(value_of(arg1)));

看到它住在Coliru

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Maven相当于gradle'+'是什么?

来自分类Dev

什么相当于MATLAB?

来自分类Dev

Ruby的Python的defaultdict相当于什么?

来自分类Dev

这相当于什么?SFML

来自分类Dev

什么是JavaFX相当于androids AsyncTask?

来自分类Dev

概念转换相当于什么?

来自分类Dev

Mac的`ss`相当于什么?

来自分类Dev

CentOS的.bashrc相当于什么?

来自分类Dev

什么是 Linux 相当于 Windows 启动?

来自分类Dev

相当于Java .jar文件的python是什么?

来自分类Dev

相当于sqlsrv_has_rows的oci是什么?

来自分类Dev

相当于TFS搁置的Subversion是什么?

来自分类Dev

iOS相当于Android的colors.xml是什么

来自分类Dev

想知道相当于LESS逃生的SCSS是什么?

来自分类Dev

在PowerShell中相当于“ nohup”是什么?

来自分类Dev

iOS相当于Android的startActivityForResult / setResult是什么?

来自分类Dev

Haskell相当于Rust的Read特质是什么?

来自分类Dev

相当于R的`with`的python / pandas是什么?

来自分类Dev

相当于Azure中的AWS PassRole权限是什么?

来自分类Dev

想知道相当于LESS逃生的SCSS是什么?

来自分类Dev

相当于jQuery解包的phpQuery是什么?

来自分类Dev

在PowerShell中相当于Bash的cat -n是什么?

来自分类Dev

批量相当于“%〜dpn0”的powershell是什么?

来自分类Dev

使用sed或awk相当于“ grep | cut”是什么?

来自分类Dev

iOS相当于Android的startActivityForResult / setResult是什么?

来自分类Dev

相当于sqlsrv_has_rows的oci是什么?

来自分类Dev

相当于M文件的情节提要是什么?

来自分类Dev

GNOME相当于Unity范围是什么?

来自分类Dev

相当于 Mage::helper('core')-> 的 magento 2 是什么?