#include <cstdint>
#include <iostream>
namespace detail {
constexpr
std::uint32_t
make_test(char a, char b, char c)
{
return
static_cast<std::uint32_t>(a << 24) +
static_cast<std::uint32_t>(b << 16) +
static_cast<std::uint32_t>(c << 8);
}
}
enum class Test : std::uint32_t
{
FOO = detail::make_test('F', 'O', 'O'),
BAR = detail::make_test('B', 'A', 'R')
};
int main(int, char **)
{
std::cout << "FOO: " << static_cast<std::uint32_t>(Test::FOO) << "\n";
std::cout << "BAR: " << static_cast<std::uint32_t>(Test::BAR) << "\n";
return 0;
}
I2luY2x1ZGUgPGNzdGRpbnQ+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCm5hbWVzcGFjZSBkZXRhaWwgewoKY29uc3RleHByCnN0ZDo6dWludDMyX3QKbWFrZV90ZXN0KGNoYXIgYSwgY2hhciBiLCBjaGFyIGMpCnsKICAgIHJldHVybgogICAgICAgIHN0YXRpY19jYXN0PHN0ZDo6dWludDMyX3Q+KGEgPDwgMjQpICsKICAgICAgICBzdGF0aWNfY2FzdDxzdGQ6OnVpbnQzMl90PihiIDw8IDE2KSArCiAgICAgICAgc3RhdGljX2Nhc3Q8c3RkOjp1aW50MzJfdD4oYyA8PCA4KTsKfQoKfQoKZW51bSBjbGFzcyBUZXN0IDogc3RkOjp1aW50MzJfdAp7CiAgICBGT08gPSBkZXRhaWw6Om1ha2VfdGVzdCgnRicsICdPJywgJ08nKSwKICAgIEJBUiA9IGRldGFpbDo6bWFrZV90ZXN0KCdCJywgJ0EnLCAnUicpCn07CgppbnQgbWFpbihpbnQsIGNoYXIgKiopCnsKCXN0ZDo6Y291dCA8PCAiRk9POiAiIDw8IHN0YXRpY19jYXN0PHN0ZDo6dWludDMyX3Q+KFRlc3Q6OkZPTykgPDwgIlxuIjsKCXN0ZDo6Y291dCA8PCAiQkFSOiAiIDw8IHN0YXRpY19jYXN0PHN0ZDo6dWludDMyX3Q+KFRlc3Q6OkJBUikgPDwgIlxuIjsKCXJldHVybiAwOwp9