gpt4 book ai didi

c++ - 使用 boost::proto 构建 s-expression

转载 作者:搜寻专家 更新时间:2023-10-31 00:18:39 26 4
gpt4 key购买 nike

我正在尝试使用带有以下终端的 boost::proto 构建 s-expression 对象:

        typedef proto::terminal< const char* >::type string_term_t;
typedef proto::terminal< uint32_t >::type uint32_term_t;
typedef proto::terminal< float >::type float_term_t;

并像这样使用它:

void testInit()
{
auto v = string_term_t("foo") , string_term_t("bla") , (float_term_t(5.6), string_term_t("some"));
proto::display_expr(v);
}

但是这不适合我;

Test.cpp:18:33: error: no matching function for call to ‘boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<const char*>, 0l>::expr(const char [4])’
boost_1_46_0/boost/proto/proto_fwd.hpp:300:16: note: candidates are: boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<const char*>, 0l>::expr()
boost_1_46_0/boost/proto/proto_fwd.hpp:300:16: note: boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<const char*>, 0l>::expr(const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<const char*>, 0l>&)
Test.cpp:18:33: error: unable to deduce ‘auto’ from ‘<expression error>’
Test.cpp:18:73: error: expected ‘)’ before ‘(’ token

我做错了什么?关于如何使用 boost::proto 获得与 s-expressions 相似或等效的东西的任何建议?

最佳答案

proto::expr<>类型不定义构造函数;因此,你的问题。尝试像这样定义您的类型:

typedef proto::literal< const char* > string_term_t;
typedef proto::literal< uint32_t > uint32_term_t;
typedef proto::literal< float > float_term_t;

关于c++ - 使用 boost::proto 构建 s-expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10055979/

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