35 : std::bool_constant<meta::has_hana_accessor_v<T>> {};
38 static constexpr
bool properties_definition_enabled_v =
47 std::enable_if_t<meta::cfg::properties_definition_enabled_v<T>>
53 namespace hana = boost::hana;
54 static constexpr
auto accessors = hana::accessors<T>();
55 hana::for_each(accessors, [&](
auto & e)
61 elem_det::make_property_name(name)
73 std::enable_if_t<meta::cfg::properties_definition_enabled_v<T>>
80 const std::string& name,
81 const std::string& description,
85 namespace hana = boost::hana;
86 static constexpr
auto accessors = hana::accessors<T>();
87 hana::for_each(accessors, [&](
auto & e)
91 if constexpr(elem_det::is_no_prop)
97 using sub_result_t = std::remove_reference_t<decltype(
pc.required(hana::second(e)(setter),
"",
"",
99 const auto varname = hana::to<char const*>(hana::first(e));
100 #define call_params \
102 hana::second(e)(setter), \
103 elem_det::make_property_name(name), \
104 description + " (parameter " + varname + ") " + \
105 elem_det::description_as_string(), \
108 static constexpr
bool min_set = simox::meta::is_not_undefined_t(
elem_det::min);
109 static constexpr
bool max_set = simox::meta::is_not_undefined_t(
elem_det::max);
110 if constexpr(std::is_same_v<sub_result_t, void> || (!min_set && !max_set))
117 if constexpr(min_set)
121 if constexpr(max_set)