#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN #include #include #include "../device/adc_device_attribute.h" using namespace adc; template struct V { static T getter() { return _v; } static void setter(const T& v) { _v = v; } static bool validator(const T& v) { if (v < 1) return false; else return true; } private: inline static T _v = 1; }; TEST_CASE("[ADC DEVICE ATTRIBUTE]") { double av = -10; using vv = V; using attr_t = AdcDeviceAttribute; attr_t attr("ATTR_A", AdcValueHolder::_defaultTrivialConvTypes, vv::getter, vv::setter, vv::validator); attr = 10.7; av = attr; std::cout << "ATTR = " << av << "\n"; // std::cout << "ATTR = " << (unsigned)attr << "\n"; attr_t aw("ATTR_WO", AdcValueHolder::_defaultTrivialConvTypes, vv::setter, vv::validator); std::cout << "ACC_TYPE: " << aw.accessType() << "\n"; }