forked from fabian-jung/tsmp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathenum.cpp
29 lines (25 loc) · 981 Bytes
/
enum.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <tsmp/reflect.hpp>
enum class eclass : std::uint32_t
{
value1 = 1,
value2 = 42,
value3 = 1337
};
int main(int, char*[])
{
constexpr auto values = tsmp::enum_values<eclass>;
static_assert(values[0] == eclass::value1);
static_assert(values[1] == eclass::value2);
static_assert(values[2] == eclass::value3);
constexpr auto names = tsmp::enum_names<eclass>;
static_assert(names[0] == "value1");
static_assert(names[1] == "value2");
static_assert(names[2] == "value3");
static_assert(tsmp::enum_to_string(eclass::value1) == "value1");
static_assert(tsmp::enum_to_string(eclass::value2) == "value2");
static_assert(tsmp::enum_to_string(eclass::value3) == "value3");
static_assert(tsmp::enum_from_string<eclass>("value1") == eclass::value1);
static_assert(tsmp::enum_from_string<eclass>("value2") == eclass::value2);
static_assert(tsmp::enum_from_string<eclass>("value3") == eclass::value3);
return 0;
}