11 #define DEFINE_CTOR(Node) \ 12 template <typename Context> \ 15 #define DEFINE(Node) \ 16 template <typename Context> \ 45 : sub_{std::move(sub)}
71 #define DEFINE_CTOR(Node) \ 72 template <type_t Type, typename Context> \ 73 Node<Type, Context>::Node 75 #define DEFINE(Node) \ 76 template <type_t Type, typename Context> \ 127 -> decltype(
boost::make_iterator_range(*this, 1, 0))
129 return boost::make_iterator_range(*
this, 1, 0);
169 : sub_(std::move(sub))
An inner node implementing a weight.
size_t size(const ExpSet &rs, const typename ExpSet::value_t &r)
An inner node with multiple children.
typename values_t::const_iterator const_iterator
#define DEFINE_CTOR(Node)
std::shared_ptr< const node_t > value_t
An expression usable with value semantics.
value_impl< detail::weight_tag > weight
An inner node to name the subexpression.
boost::flyweight< std::string, boost::flyweights::no_tracking, boost::flyweights::intermodule_holder > symbol
An internalized string.
Container::value_type back(const Container &container)
The last member of this Container.
The abstract parameterized, root for all rational expression types.
weight_t_of< Context > weight_t
std::vector< value_t > values_t
label_t_of< Context > label_t