solve problem with adc_func_traits

add and use concept adc_is_callable
rewrite value holder and device attribute classes
with new constructor's arguments resolution scheme
This commit is contained in:
2024-05-04 22:29:10 +03:00
parent 2412b59b7a
commit ba60fadb79
5 changed files with 119 additions and 110 deletions

View File

@@ -46,7 +46,8 @@ TEST_CASE("[ADC VALUEHOLDER]")
return true;
};
adc::AdcValueHolder vht(getter, setter, adc::AdcValueHolder::_defaultTrivialConvTypes);
// adc::AdcValueHolder vht(getter, setter, adc::AdcValueHolder::_defaultTrivialConvTypes);
adc::AdcValueHolder vht(adc::AdcValueHolder::_defaultTrivialConvTypes, getter, setter);
adc::AdcValueHolder vh(getter, setter, validator);
// auto vah = adc::make_arith_valueholder(getter, setter);
auto vah = adc::makeArithmValue<adc::AdcValueHolder>(getter, setter);
@@ -178,7 +179,8 @@ TEST_CASE("[ADC VALUEHOLDER]")
adc::AdcSerializingValueHolder svh(getter, setter, validator, adc::AdcValueHolder::_defaultTrivialConvTypes);
// adc::AdcSerializingValueHolder svh(getter, setter, validator, adc::AdcValueHolder::_defaultTrivialConvTypes);
adc::AdcSerializingValueHolder svh(adc::AdcValueHolder::_defaultTrivialConvTypes, getter, setter, validator);
svh = 77.65412;
@@ -193,7 +195,8 @@ TEST_CASE("[ADC VALUEHOLDER]")
// fl = vsh;
// std::cout << "VSH: " << fl << "\n";
svh.resetValueHolder(gdbl, sdbl, vdbl, adc::AdcValueHolder::_defaultTrivialConvTypes);
// svh.resetValueHolder(gdbl, sdbl, vdbl, adc::AdcValueHolder::_defaultTrivialConvTypes);
svh.resetValueHolder(adc::AdcValueHolder::_defaultTrivialConvTypes, gdbl, sdbl, vdbl);
// svh.resetValueHolder([]() { return dbl_val; }, [](const double& v) { dbl_val = v; },
// [](const double&) { return true; }, adc::AdcValueHolder::_defaultTrivialConvTypes);
std::cout << "SERIALIZED: " << svh.serialize() << "\n";