gpt4 book ai didi

c++ - phoenix::lambda函数的执行顺序是怎样的?

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

我是boost phoenix的新手,我写了一小段代码,但它完全让我对执行顺序感到困惑,你可以检查代码

std::vector<int> v;
v.push_back(1);
ph::for_each(v,
ph::lambda[ph::ref(cout)<<"a",
ph::ref(cout)<<"b"
])(v);


ph::for_each(arg1,
ph::lambda[ph::ref(cout)<<"a",
ph::for_each(v,
ph::lambda[ph::ref(cout)<<"b",
ph::ref(cout)<<"c"
]),
ph::ref(cout)<<"d"
])(v);

第一个输出是“ab”但第二个输出是“dbca”

我是不是犯了什么错误?

最佳答案

问题是第二个 ph::for_each,如果我用我自己的 for_each 版本替换它,它会从左到右工作。我将自己的版本与官方版本进行了比较,不同之处在于它使用了 detail::begin 和 detail::end 。但真正的问题是什么,我会继续深入研究。

关于c++ - phoenix::lambda函数的执行顺序是怎样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8863136/

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