7#ifndef MFRAME_242D7CFC_C83D_4A29_8BC7_A6FF9CCEDD5D
8#define MFRAME_242D7CFC_C83D_4A29_8BC7_A6FF9CCEDD5D
26#pragma clang diagnostic ignored "-Wnon-virtual-dtor"
27#pragma clang diagnostic ignored "-Wdeprecated-copy-dtor"
28#pragma clang diagnostic ignored "-Wc++98-compat"
29#pragma clang diagnostic ignored "-Wweak-vtables"
30#pragma clang diagnostic ignored "-Wunused-parameter"
31#pragma clang diagnostic ignored "-Wmissing-noreturn"
32#pragma clang diagnostic ignored "-Wformat-nonliteral"
33#pragma clang diagnostic ignored "-Wpadded"
34#pragma clang diagnostic ignored "-Wc++17-extensions"
35#pragma clang diagnostic ignored "-Wnested-anon-types"
36#pragma clang diagnostic ignored "-Wcovered-switch-default"
37#pragma clang diagnostic ignored "-Wswitch-enum"
38#pragma clang diagnostic ignored "-Wmissing-prototypes"
39#pragma clang diagnostic ignored "-Wimplicit-fallthrough"
46#define enum_operator(e, t, o) \
47 static inline e operator o(e a, e b) { \
48 return static_cast<e>((static_cast<t>(a) o static_cast<t>(b))); \
50 static inline e operator o(e a, t b) { \
51 return static_cast<e>((static_cast<t>(a) o b)); \
55#define enum_auto_operator(e, t) \
56 enum_operator(e, t, |) \
57 enum_operator(e, t, &)
60#define tmeplate_auto_convert(_CLASSNAME, _TYPE) \
62 template <typename TNAME> \
63 inline operator const _CLASSNAME<TNAME>&(void) const { \
64 const _CLASSNAME<_TYPE>* src = this; \
65 return *reinterpret_cast<const _CLASSNAME<TNAME>*>(src); \
67 template <typename TNAME> \
68 inline operator _CLASSNAME<TNAME>&(void) { \
69 _CLASSNAME<_TYPE>* src = this; \
70 return *reinterpret_cast<_CLASSNAME<TNAME>*>(src); \
74#define tmeplate_auto_convert_default(_CLASSNAME) \
76 template <typename TNAME> \
77 inline operator const _CLASSNAME<TNAME>&(void) const { \
78 const _CLASSNAME<>* src = this; \
79 return *reinterpret_cast<const _CLASSNAME<TNAME>*>(src); \
81 template <typename TNAME> \
82 inline operator _CLASSNAME<TNAME>&(void) { \
83 _CLASSNAME<>* src = this; \
84 return *reinterpret_cast<_CLASSNAME<TNAME>*>(src); \
102#define __IM volatile const
110#define __IOM volatile
113typedef uint8_t uint8;
114typedef uint16_t uint16;
115typedef unsigned int uint32;
116typedef uint64_t uint64;
119typedef int16_t int16;
120typedef int32_t int32;
121typedef int64_t int64;
Definition Appendable.h:23
Definition Interface.h:134
virtual mframe::lang::Object & getObject(void) override
取得類Object
virtual ~Interface(void)=default
Destroy the struct object.