This commit is contained in:
Timur A. Fatkhullin 2024-05-12 19:23:15 +03:00
parent 6d28bf7747
commit e23fc602be

View File

@ -530,19 +530,13 @@ public:
*/ */
template <typename HolderT, template <typename HolderT, typename... Ts>
std::invocable<> GT, HolderT makeArithmValue(Ts&&... ctor_args)
typename VALT = traits::adc_retval_t<GT>,
std::invocable<const VALT&> ST,
typename... Ts>
HolderT makeArithmValue(GT&& getter, ST&& setter, Ts&&... other_ctor_args)
{ {
using val_t = traits::adc_retval_t<GT>; static_assert(std::is_same_v<HolderT, AdcValueHolder> || std::is_same_v<HolderT, AdcSerializingValueHolder>,
"Invalid value holder type!!!");
static_assert(std::is_arithmetic_v<val_t>, "GETTER MUST RETURN AN ARITHMETIC TYPE VALUE!!!"); return HolderT(AdcValueHolder::defaultTrivialConvTypes, std::forward<Ts>(ctor_args)...);
return HolderT(AdcValueHolder::defaultTrivialConvTypes, std::forward<GT>(getter), std::forward<ST>(setter),
std::forward<Ts>(other_ctor_args)...);
} }
} // namespace adc } // namespace adc