#pragma once #include #include class CharacterProperty { public: using StringType = std::string; using IntegerType = int; using FloatingType = double; public: enum Type { string, integer, floating_point }; public: CharacterProperty(); std::optional toString() const; std::optional toInt() const; std::optional toFloat() const; private: Type m_valueType; StringType m_valueString; IntegerType m_valueInt; FloatingType m_valueFloat; };