我如何添加父引用Boost.原型表达式
How can I add parent references to Boost.Proto expressions?
我想生成具有从子到父"反向"引用的表达式树。是否有一种方法可以自定义Proto生成器或域,以便表达式包装器类(使用proto::extends<>
)包含对父表达式的引用?
这样做的目的是创建表达式树来缓存求值的结果,这样它们就可以被高效地重新求值。我的策略是更新终端值,然后遍历树,将父节点标记为"脏",以便在计算根表达式时重新计算它们。
您描述的技术不起作用。表达式是自下而上构建的。对于表达式a + (b * c)
,父节点(+
)在构建子节点(b * c
)时不存在。子对象不能存储指向不存在的对象的指针。
必须对表达式进行后处理才能使用转换或上下文设置父指针。
相关文章:
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 对 boost::system::d etail::system_category_instance 的未定义引用,从
- Boost Python Numpy - 要初始化的未定义引用
- 在其他容器中使用 boost::container::static_vector 时,GCC 编译错误"将'const s'绑定到类型's&'的引用丢弃限定符"
- 我正在将一个 std::string 传递给一个 boost 函数,该函数对该类型进行常量引用,但该值发生了变化
- boost::存在符号链接不取消引用
- 我仍然收到此错误未定义的引用:boost::log::v2_mt_posix::trivial::logger::get
- C++ Boost:在Windows中对boost::system::generic_category()的未定义引用
- 链接到 Boost 1.63 静态库时未定义的引用
- C++ CMake 构建错误:未定义对"boost::throw_exception(std::exception const&)"的引用
- 针对 QNX 交叉编译后,boost 文件系统 (1.63) 失败并出现未定义的引用错误
- LNK1120在构建引用 Boost 的 Python 包时
- C++从其线程函数中引用boost::线程
- 对 'boost::chrono::system_clock:now()' 的未定义引用 - Boost 和 cpp-netlib
- 取消引用 boost::p tr_vector
- 链接c++失败[未定义引用boost::filesystem3 ..]].
- 通过取消引用 boost::shared_ptr 找不到派生类的方法
- Ubuntu 下的 C++ 链接 Boost 库与 cMake:未定义的引用 'boost::iostreams::zlib::ok'
- 我如何添加父引用Boost.原型表达式
- 在swig接口中解引用boost::shared_ptr的好方法