all prepare work done

This commit is contained in:
yyc12345 committed 2023-02-09 17:16:58 +08:00
1 parent 7fe2bd8f5c
commit 6bda076a1d
4 files changed
+76 -18

No files matched your search

+19
View File
@@ -2,9 +2,28 @@
#include <cinttypes>
#include <cstdint>
#include <cstdarg>
#include <type_traits>
namespace LibCmo {
namespace EnumHelper {
template<typename TEnum>
inline TEnum FlagEnumAdd(TEnum e, ...) {
TEnum result = e;
va_list argptr;
va_start(argptr, e);
result = static_cast<TEnum>(static_cast<std::underlying_type_t<TEnum>>(result) | static_cast<std::underlying_type_t<TEnum>>(va_arg(argptr, TEnum)));
va_end(argptr);
return result;
}
template<typename TEnum>
inline bool FlagEnumHas(TEnum e, TEnum probe) {
return static_cast<bool>(static_cast<std::underlying_type_t<TEnum>>(e) & static_cast<std::underlying_type_t<TEnum>>(probe));
}
}
using CK_ID = uint32_t;
enum class CK_CLASSID : uint32_t {