Derive-C
Loading...
Searching...
No Matches
clone.h
Go to the documentation of this file.
1
3
4#pragma once
5
10
11#define DC_TRAIT_CLONEABLE(SELF) DC_REQUIRE_METHOD(SELF, SELF, clone, (SELF const*))
12
13#define DC_COPY_CLONE(SELF) (*(SELF))
14
15#define _DC_DERIVE_CLONE_MEMBER(MEMBER_TYPE, MEMBER_NAME) \
16 .MEMBER_NAME = NS(MEMBER_TYPE, clone)(&self->MEMBER_NAME),
17
18#define DC_DERIVE_CLONE(TYPE) \
19 DC_PUBLIC static TYPE NS(TYPE, clone)(TYPE const* self) { \
20 return (TYPE){NS(TYPE, REFLECT)(_DC_DERIVE_CLONE_MEMBER)}; \
21 }
22
23#define _DC_DERIVE_STD_CLONE(TYPE, ...) \
24 DC_PUBLIC static TYPE NS(TYPE, clone)(TYPE const* self) { return *self; }
25
#define _DC_DERIVE_STD_CLONE(TYPE,...)
Definition clone.h:23
#define DC_STD_REFLECT(F,...)
Definition reflect.h:32
#define DC_FLOAT_REFLECT(F,...)
Definition reflect.h:25