21 template <
class t_Visitor>
38 typename = std::enable_if_t<
39 std::is_same<t_IdType, t_Visitor>::value
40 or std::is_base_of<t_IdType, typename t_Visitor::Parameters>::value>>
48 typename = std::enable_if_t<
49 std::is_same<t_IdType, t_Visitor>::value
50 or std::is_base_of<t_IdType, typename t_Visitor::Parameters>::value>>
57 template <
class... t_Visitors>
70 template <
class t_Visitor,
class... t_Visitors>
75 explicit Parameters(
const bool override_parameters =
true)
88 template <
class t_Parameters>
92 ,
Parameters<t_Visitors...>(parameters, override_parameters)
108 template <
class t_Visitor>
115 template <
class... t_Args>
123 typename = std::enable_if_t<
124 std::is_same<t_GetVisitor, t_Visitor>::value
125 or std::is_base_of<t_GetVisitor, t_Visitor>::value>>
133 typename = std::enable_if_t<
134 std::is_same<t_GetVisitor, t_Visitor>::value
135 or std::is_base_of<t_GetVisitor, t_Visitor>::value>>
136 const t_Visitor &
get()
const
142 template <
class... t_Visitors>
157 template <
class t_Entry,
class t_Path,
class t_Parameters>
163 template <
class t_Visitor,
class... t_Visitors>
168 template <
class t_ConstructorTuple,
class... t_Args>
169 BaseVisitor(t_ConstructorTuple &&constructor_tuple, t_Args &&...args)
171 ,
BaseVisitor<t_Visitors...>(std::forward<t_Args>(args)...)
179 template <
class t_Entry,
class t_Path,
class t_Parameters>
184 BaseVisitor<t_Visitors...>::template visit(entry, path, param);
189 template <
class t_Derived,
class... t_Visitors>
196 template <
class... t_Args>
201 template <
class t_Ariles>
210 template <
class t_Entry,
class t_Path>
const t_Visitor & get() const
BaseVisitorWrapper(const std::tuple< t_Args... > &args_tuple)
void visit(t_Entry &entry, const t_Path &path, const t_Parameters ¶m)
BaseVisitor(t_ConstructorTuple &&constructor_tuple, t_Args &&...args)
void visit(t_Entry &, const t_Path &, const t_Parameters &)
ParametersWrapper(const typename t_Visitor::Parameters ¶meters)
t_Visitor::Parameters parameters_
const t_Visitor::Parameters & get() const
t_Visitor::Parameters & get()
ParametersWrapper(const bool override_parameters=true)
Parameters(const bool override_parameters=true)
Parameters(const t_Parameters ¶meters, const bool override_parameters=true)
Parameters(const typename t_Visitor::Parameters ¶meters, t_Parameters &&...other_parameters)
Parameters(const typename t_Visitor::Parameters ¶meters, const bool override_parameters=true)
void visit(t_Entry &entry, const t_Path &path, const Parameters ¶m)
const Parameters getParameters(const t_Ariles &ariles_class) const
Visitor(t_Args &&...args)
aggregate::Parameters< t_Visitors... > Parameters
visitor::Parameters Parameters
t_Visitor::ReturnType apply(t_Visitor &visitor, t_Ariles &ariles_class, t_Subtree &&subtree, const typename t_Visitor::Parameters ¶m)