...
This commit is contained in:
parent
c84756ce07
commit
7737edc77f
@ -235,7 +235,7 @@ public:
|
|||||||
std::forward<decltype(validator)>(validator));
|
std::forward<decltype(validator)>(validator));
|
||||||
|
|
||||||
// setup trivially-defined conversion function
|
// setup trivially-defined conversion function
|
||||||
AdcValueHolder::setupTrivialConvertFunc<traits::adc_retval_t<decltype(getter)>, std::tuple<Ts...>>();
|
setupTrivialConvertFunc<traits::adc_retval_t<decltype(getter)>, std::tuple<Ts...>>();
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
@ -254,22 +254,13 @@ public:
|
|||||||
|
|
||||||
template <typename FromFuncT, typename ToFuncT>
|
template <typename FromFuncT, typename ToFuncT>
|
||||||
AdcValueHolder& addConvertFunc(FromFuncT&& func_from_internal, ToFuncT&& func_to_internal)
|
AdcValueHolder& addConvertFunc(FromFuncT&& func_from_internal, ToFuncT&& func_to_internal)
|
||||||
requires std::invocable<FromFuncT, std::remove_cvref_t<traits::adc_retval_t<ToFuncT>>> &&
|
requires std::invocable<FromFuncT, std::decay_t<traits::adc_retval_t<ToFuncT>>> &&
|
||||||
std::invocable<ToFuncT, std::remove_cvref_t<traits::adc_retval_t<FromFuncT>>>
|
std::invocable<ToFuncT, std::decay_t<traits::adc_retval_t<FromFuncT>>>
|
||||||
{
|
{
|
||||||
using from_sig_t = typename traits::adc_func_traits<FromFuncT>;
|
using from_sig_t = typename traits::adc_func_traits<FromFuncT>;
|
||||||
using to_sig_t = typename traits::adc_func_traits<ToFuncT>;
|
using to_sig_t = typename traits::adc_func_traits<ToFuncT>;
|
||||||
using value_t = std::remove_cv_t<typename to_sig_t::ret_t>; // internal value type
|
using value_t = std::decay_t<typename to_sig_t::ret_t>; // internal value type
|
||||||
using user_t = std::remove_cv_t<typename from_sig_t::ret_t>;
|
using user_t = std::decay_t<typename from_sig_t::ret_t>;
|
||||||
|
|
||||||
// static_assert(!std::is_same_v<value_t, void>, "void IS NOT VALID TYPE!!!");
|
|
||||||
|
|
||||||
// static_assert(!std::is_void_v<typename traits::adc_func_traits<FromFuncT>::arg1_t>,
|
|
||||||
// "INVALID CONVERSIONAL FUNCTION!!!");
|
|
||||||
|
|
||||||
// static_assert(std::is_same_v<std::remove_cvref_t<typename traits::adc_func_traits<FromFuncT>::arg1_t>,
|
|
||||||
// value_t>,
|
|
||||||
// "INVALID CONVERSIONAL FUNCTION!!!");
|
|
||||||
|
|
||||||
_getterFunc<user_t>[this] = [wrapper = traits::adc_pf_wrapper(std::forward<FromFuncT>(func_from_internal)),
|
_getterFunc<user_t>[this] = [wrapper = traits::adc_pf_wrapper(std::forward<FromFuncT>(func_from_internal)),
|
||||||
this]() {
|
this]() {
|
||||||
@ -342,8 +333,6 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/* STATIC HELPER METHODS */
|
|
||||||
|
|
||||||
template <typename VT, size_t I, typename TupleT>
|
template <typename VT, size_t I, typename TupleT>
|
||||||
void setupTrivialConvertFuncImpl()
|
void setupTrivialConvertFuncImpl()
|
||||||
{
|
{
|
||||||
@ -355,7 +344,7 @@ protected:
|
|||||||
[](const elem_t& v) { return static_cast<VT>(v); });
|
[](const elem_t& v) { return static_cast<VT>(v); });
|
||||||
}
|
}
|
||||||
|
|
||||||
AdcValueHolder::setupTrivialConvertFuncImpl<VT, I + 1, TupleT>();
|
setupTrivialConvertFuncImpl<VT, I + 1, TupleT>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user