...
This commit is contained in:
parent
c84756ce07
commit
7737edc77f
@ -235,7 +235,7 @@ public:
|
||||
std::forward<decltype(validator)>(validator));
|
||||
|
||||
// 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;
|
||||
}
|
||||
@ -254,22 +254,13 @@ public:
|
||||
|
||||
template <typename FromFuncT, typename ToFuncT>
|
||||
AdcValueHolder& addConvertFunc(FromFuncT&& func_from_internal, ToFuncT&& func_to_internal)
|
||||
requires std::invocable<FromFuncT, std::remove_cvref_t<traits::adc_retval_t<ToFuncT>>> &&
|
||||
std::invocable<ToFuncT, std::remove_cvref_t<traits::adc_retval_t<FromFuncT>>>
|
||||
requires std::invocable<FromFuncT, std::decay_t<traits::adc_retval_t<ToFuncT>>> &&
|
||||
std::invocable<ToFuncT, std::decay_t<traits::adc_retval_t<FromFuncT>>>
|
||||
{
|
||||
using from_sig_t = typename traits::adc_func_traits<FromFuncT>;
|
||||
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 user_t = std::remove_cv_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!!!");
|
||||
using value_t = std::decay_t<typename to_sig_t::ret_t>; // internal value type
|
||||
using user_t = std::decay_t<typename from_sig_t::ret_t>;
|
||||
|
||||
_getterFunc<user_t>[this] = [wrapper = traits::adc_pf_wrapper(std::forward<FromFuncT>(func_from_internal)),
|
||||
this]() {
|
||||
@ -342,8 +333,6 @@ public:
|
||||
|
||||
|
||||
protected:
|
||||
/* STATIC HELPER METHODS */
|
||||
|
||||
template <typename VT, size_t I, typename TupleT>
|
||||
void setupTrivialConvertFuncImpl()
|
||||
{
|
||||
@ -355,7 +344,7 @@ protected:
|
||||
[](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