gpt4 book ai didi

c++ - 为什么这个 proto/phoenix 玩具示例会崩溃?

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

我正在试验 proto 和 phoenix,我的第一个玩具示例崩溃了,我不知道应该看哪里。由于 #boost IRC channel 上有人告诉我要确保首先深度复制 phoenix 表达式树(这样在构建 x 时就没有悬空引用),我用 boost::proto::deep_copy。然而that didn't quite work .当使用 -O2 标志和 works fine when omitting it 编译时它仍然崩溃.

#include <boost/phoenix/phoenix.hpp>
#include <boost/proto/deep_copy.hpp>
#include <iostream>

namespace bpr = boost::proto;

int main(int argc, char **argv) {
using namespace boost::phoenix;
using namespace placeholders;

auto x = bpr::deep_copy(
switch_(arg1)[
case_<1>(std::cout << val("hello")),
case_<2>(std::cout << val("bye")),
default_(std::cout << val("default"))
]);

x(1);
x(2);
}

我希望这会输出 hellobye

最佳答案

看起来这是一个已知的 bug in Phoenix .在排序之前,我会避免使用 phoenix::switch_。不幸的是,Phoenix 的维护者最近似乎在忙于其他事情。 :-(

关于c++ - 为什么这个 proto/phoenix 玩具示例会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14063880/

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