#include #include using namespace adc; int main() { int i = 10; double d = 8.1; std::string s{"dwedjkwlk"}; AdcGenericDevice<> dev; dev.addAttr( "1", [&i]() -> adc_result_t { return i; }, [&i](int ii) -> adc_error_t { i = ii; return AdcDeviceErrorCode::ERROR_OK; }, std::tuple{}); adc_result_t ri = dev["1"]; if (ri) { std::println("dev[1] = {}", ri.value()); } else { std::println("cannot get dev[1] as int: {}", ri.error().message()); } auto err = dev["1"] = 77; if (err) { std::println("cannot set dev[1] as int: {}", err.message()); } adc_result_t rd = dev["1"]; if (rd) { std::println("dev[1] = {}", rd.value()); } else { std::println("cannot get dev[1] as double: {}", rd.error().message()); } return 0; }