42#ifndef UFO_CONTAINER_TREE_PREDICATE_MODIFIED_HPP
43#define UFO_CONTAINER_TREE_PREDICATE_MODIFIED_HPP
46#include <ufo/container/tree/predicate/filter.hpp>
50template <
bool Negated = false>
54template <
bool Negated>
60static constexpr inline Modified<false>
const modified;
62template <
bool Negated>
67 static constexpr void init(
Pred&,
Tree const&)
noexcept
71 template <
class Value>
72 [[nodiscard]]
static constexpr bool returnableValue(
Pred const&, Value
const&)
noexcept
78 [[nodiscard]]
static constexpr bool returnable(
Pred const&,
Tree const& t,
81 if constexpr (Negated) {
89 [[nodiscard]]
static constexpr bool traversable(
Pred const&,
Tree const& t,
92 if constexpr (Negated) {
100 [[nodiscard]]
static constexpr bool returnableRay(
Pred const& p,
Tree const& t,
104 return returnable(p, t, n);
107 template <
class Tree>
108 [[nodiscard]]
static constexpr bool traversableRay(
Pred const& p,
Tree const& t,
112 return traversable(p, t, n);
Utilizing curiously recurring template pattern (CRTP)
bool modified() const
Check if the root of the tree is modified.