1 #ifndef SIPLASPLAS_REFLECTION_DYNAMIC_ENUM_HPP 2 #define SIPLASPLAS_REFLECTION_DYNAMIC_ENUM_HPP 5 #include <siplasplas/typeerasure/typeinfo.hpp> 6 #include <siplasplas/typeerasure/simpleany.hpp> 11 namespace dynamic_reflection
18 class SIPLASPLAS_REFLECTION_DYNAMIC_EXPORT
Enum :
public Entity 34 static std::shared_ptr<Enum> create(
35 const SourceInfo& sourceInfo,
38 const std::vector<std::string>& constantsNames,
39 const std::vector<std::int64_t>& constantsValues
53 static Enum& fromEntity(
const std::shared_ptr<Entity>& entity);
58 std::size_t count()
const;
66 const std::string& name(std::size_t i)
const;
71 const std::vector<std::string>& names()
const;
84 std::int64_t value(std::size_t i)
const;
89 const std::vector<std::int64_t>& values()
const;
96 bool isUnsigned()
const;
104 std::int64_t fromString(
const std::string& name)
const;
113 const std::string& toString(std::int64_t value)
const;
117 const SourceInfo& sourceInfo,
120 const std::vector<std::string>& constantsNames,
121 const std::vector<std::int64_t>& constantsValues
126 std::vector<std::string> _names;
127 std::vector<std::int64_t> _values;
134 #endif // SIPLASPLAS_REFLECTION_DYNAMIC_ENUM_HPP Definition: canary_allocator.hpp:7
Stores dynamic reflection information of an enumeration type.
Definition: enum.hpp:18
Contains minimal information to execute the value semantics operations of a type. ...
Definition: typeinfo.hpp:115
Represents a C++ semantic entity (Class, function, namespace, etc) and manages its dynamic reflection...
Definition: entity.hpp:22