namespace detangled¶
Overview¶
namespace detangled { // enums enum side; enum traversal_order; // classes template <class Container> class accessor; class format; template <class C, traversal_order order, side wing> class iterator; template <typename T> class raw_tree; template <typename A, side wing> class traverser<A, traversal_order::post, wing>; template <typename A, side wing> class traverser<A, traversal_order::in, wing>; template <typename A, traversal_order order, side wing> class traverser; template <typename A, side wing> class traverser<A, traversal_order::pre, wing>; template <class ContainerType> class virtual_accessor; // global variables constexpr std::underlying_type_t<side> _left = as_int(side::left); constexpr std::underlying_type_t<side> _right = as_int(side::right); // global functions constexpr traversal_order operator~(const traversal_order order); constexpr side operator!(const side wing); template <typename E> constexpr auto as_int(E e); template <typename T> void swap(raw_tree<T>& left, raw_tree<T>& right); } // namespace detangled
Detailed Documentation¶
Global Functions¶
constexpr traversal_order operator~(const traversal_order order)
Returns a traversal_order that complements order. Complementarity is fully decided by side as well, but this function does the traversal_order part of things.
Complementary (order, wing) == (~order, !wing)
~in == in
~pre == post
~post == pre
See also: