Direct-list-initialization of enums
Use case
Initialize scoped enum from raw value (without cast).
Explanation
Scoped enums can now be initialized with braces from their underlying type.
Code
#include <cstdint>
#include <iostream>
// https://en.wikipedia.org/wiki/Mach-O
enum class MHFileType : uint32_t {};
int main() {
MHFileType exe{0x2};
std::cout << "Filetype: 0x" << std::hex << static_cast<uint32_t>(exe) << "\n";
return 0;
}
Output
$ ./src/c++17/build/direct-list-initialization-of-enums
Filetype: 0x2