[+] AUROXTL_INTERFACE_SOO_HDR_EX_CC

{+] AUROXTL_INTERFACE_SOO_HDR_EX_CCNM
This commit is contained in:
Reece Wilson 2023-12-18 05:31:22 +00:00
parent f3bbefae33
commit 28e7a20fe8

View File

@ -127,12 +127,32 @@ using Type = Type ## SOO;
return *this; \
}
#define _AUROXTL_INTERFACE_SOO_CC_CTOR(Type, extends) \
inline Type ## SOO(const Type ## SOO &that) \
{ \
Type ## Copy((extends *)this->padding, (const extends *)that.padding); \
} \
\
inline Type ## SOO &operator=(const Type ## SOO &that) \
{ \
Type ## Copy((extends *)this->padding, (const extends *)that.padding); \
return *this; \
}
#define AUROXTL_INTERFACE_SOO_HDR_EX(vis, Type, extends, targetSize, ...) \
AUROXTL_INTERFACE_SOO_HDR_EX2(vis, Type, extends, targetSize, (AU_SOO_COPY_BASIC(Type ## SOO); AU_SOO_MOVE_BASIC(Type ## SOO);), ## __VA_ARGS__)
#define AUROXTL_INTERFACE_SOO_HDR_EX_NC(vis, Type, extends, targetSize, ...) \
AUROXTL_INTERFACE_SOO_HDR_EX2(vis, Type, extends, targetSize, (AU_NO_COPY(Type ## SOO); AU_SOO_MOVE_BASIC(Type ## SOO);), ## __VA_ARGS__)
#define AUROXTL_INTERFACE_SOO_HDR_EX_CC(vis, Type, extends, targetSize, ...) \
vis void Type ## Copy(extends *dest, const extends *source); \
AUROXTL_INTERFACE_SOO_HDR_EX2(vis, Type, extends, targetSize, (_AUROXTL_INTERFACE_SOO_CC_CTOR(Type, extends); AU_SOO_MOVE_BASIC(Type ## SOO);), ## __VA_ARGS__)
#define AUROXTL_INTERFACE_SOO_HDR_EX_CCNM(vis, Type, extends, targetSize, ...) \
vis void Type ## Copy(extends *dest, const extends *source); \
AUROXTL_INTERFACE_SOO_HDR_EX2(vis, Type, extends, targetSize, (_AUROXTL_INTERFACE_SOO_CC_CTOR(Type, extends); AU_NO_MOVE(Type ## SOO);), ## __VA_ARGS__)
#define AUROXTL_INTERFACE_SOO_HDR_EX_NCM(vis, Type, extends, targetSize, ...) \
AUROXTL_INTERFACE_SOO_HDR_EX2(vis, Type, extends, targetSize, (AU_NO_COPY_NO_MOVE(Type ## SOO)), ## __VA_ARGS__)