#pragma once class EnumClass { const char* value = nullptr; public: EnumClass() {} EnumClass(const char* v) { value = v; } void operator=(const char* v) { value = v; } operator const char*() { return value; } operator bool() { return value != nullptr; } }; namespace Ha { struct SensorStateClass : EnumClass { SensorStateClass() : EnumClass() {} SensorStateClass(const char* value) : EnumClass(value) {} } MEASUREMENT{ "measurement" }, MEASUREMENT_ANGLE{ "measurement_angle" }, TOTAL{ "total" }, TOTAL_INCREASING{ "total_increasing" }; }