This commit is contained in:
Timur A. Fatkhullin 2024-04-22 00:48:39 +03:00
parent c21490091d
commit ad8e81896a

View File

@ -101,7 +101,7 @@ protected:
std::invocable<const traits::adc_retval_t<decltype(getter)>&> auto&& setter, std::invocable<const traits::adc_retval_t<decltype(getter)>&> auto&& setter,
std::predicate<const traits::adc_retval_t<decltype(getter)>&> auto&& validator) std::predicate<const traits::adc_retval_t<decltype(getter)>&> auto&& validator)
{ {
using value_t = traits::adc_retval_t<decltype(getter)>; using value_t = std::decay_t<traits::adc_retval_t<decltype(getter)>>;
static_assert(!std::is_same_v<value_t, void>, "THE getter MUST NOT RETURN void TYPE!!!"); static_assert(!std::is_same_v<value_t, void>, "THE getter MUST NOT RETURN void TYPE!!!");
@ -250,9 +250,7 @@ public:
{ {
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 = typename to_sig_t::ret_t; // internal value type
using value_t = std::remove_cv_t<typename to_sig_t::ret_t>; // internal value type using value_t = std::remove_cv_t<typename to_sig_t::ret_t>; // internal value type
// using user_t = typename from_sig_t::ret_t;
using user_t = std::remove_cv_t<typename from_sig_t::ret_t>; 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_same_v<value_t, void>, "void IS NOT VALID TYPE!!!");
@ -295,8 +293,9 @@ public:
template <typename UT> template <typename UT>
operator UT() operator UT()
{ {
using v_t = std::remove_reference_t<UT>; // using v_t = std::remove_reference_t<UT>;
using val_t = std::conditional_t<std::is_array_v<v_t>, std::add_pointer_t<std::remove_extent_t<v_t>>, v_t>; // using val_t = std::conditional_t<std::is_array_v<v_t>, std::add_pointer_t<std::remove_extent_t<v_t>>, v_t>;
using val_t = std::decay_t<UT>;
auto getter = _getterFunc<val_t>[this]; auto getter = _getterFunc<val_t>[this];
if (getter) { if (getter) {
@ -309,9 +308,6 @@ public:
template <typename UT> template <typename UT>
AdcValueHolder& operator=(UT&& value) AdcValueHolder& operator=(UT&& value)
{ {
// using v_t = std::remove_reference_t<UT>;
// using v_t = std::remove_cvref_t<UT>;
// using val_t = std::conditional_t<std::is_array_v<v_t>, std::add_pointer_t<std::remove_extent_t<v_t>>, v_t>;
using val_t = std::decay_t<UT>; using val_t = std::decay_t<UT>;
auto setter = _setterFunc<val_t>[this]; auto setter = _setterFunc<val_t>[this];