#include #include using namespace structive; struct Device : Property_Object { double temperature{25.0}; double pressure{101.3}; int serial_number{1001}; }; template <> struct structive::Type_Descriptor { static auto get() { return object( synchronization(sync_all_independent), field<&Device::temperature>(key<"temperature">, unit<"C">, min_value<-50.0>, max_value<200.0>), field<&Device::pressure>(key<"pressure">, unit<"kPa">), field<&Device::serial_number>(key<"serial_number">, read_only) ); } }; int main() { Device device; device.write<&Device::temperature>(30.0); std::cout << "temperature=" << device.read<&Device::temperature>() << '\n'; std::cout << "serial_number=" << device.read<&Device::serial_number>() << '\n'; std::cout << "lock_count=" << device.resolved_synchronization().lock_count << '\n'; return 0; }