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))
size_t size(const ExpSet &rs, const typename ExpSet::value_t &r)
std::vector< value_t > values_t
An inner node with multiple children.
boost::flyweight< std::string, boost::flyweights::no_tracking, boost::flyweights::intermodule_holder > symbol
An internalized string.
#define DEFINE_CTOR(Node)
An inner node to name the subexpression.
Container::value_type back(const Container &container)
The last member of this Container.
label_t_of< Context > label_t
std::shared_ptr< const node_t > value_t
An expression usable with value semantics.
The abstract parameterized, root for all rational expression types.
An inner node implementing a weight.
weight_t_of< Context > weight_t
typename values_t::const_iterator const_iterator
value_impl< detail::weight_tag > weight