11 #define DEFINE_CTOR(Node) \
12 template <typename Context> \
16 #define DEFINE(Node) \
17 template <typename Context> \
46 #define DEFINE_CTOR(Node) \
47 template <type_t Type, typename Context> \
49 Node<Type, Context>::Node
51 #define DEFINE(Node) \
52 template <type_t Type, typename Context> \
67 DEFINE(variadic)::begin() const
73 DEFINE(variadic)::end() const
79 DEFINE(variadic)::rbegin() const
80 -> const_reverse_iterator
85 DEFINE(variadic)::rend() const
86 -> const_reverse_iterator
97 DEFINE(variadic)::operator[](size_t n) const
103 DEFINE(variadic)::head() const
115 DEFINE(variadic)::tail() const
116 -> decltype(boost::make_iterator_range(*this, 1, 0))
118 return boost::make_iterator_range(*
this, 1, 0);
121 DEFINE(variadic)::subs() const
127 DEFINE(variadic)::accept(typename super_t::const_visitor&
v) const
141 DEFINE(unary)::sub() const
147 DEFINE(unary)::accept(typename super_t::const_visitor&
v) const
158 : sub_(std::move(sub))
162 DEFINE(weight_node)::sub() const
168 DEFINE(weight_node)::weight() const
174 DEFINE(weight_node)::set_weight(weight_t w)
180 DEFINE(weight_node)::accept(typename super_t::const_visitor&
v) const
191 DEFINE(constant)::accept(typename super_t::const_visitor&
v) const
std::shared_ptr< const detail::weight_base > weight
size_t size(const ExpSet &rs, const typename ExpSet::value_t &r)
label_t_of< Context > label_t
#define DEFINE_CTOR(Node)
The abstract parameterized, root for all rational expression types.
Container::value_type back(const Container &container)
The last member of this Container.