Derive-C
Loading...
Searching...
No Matches
clone.h File Reference

Go to the source code of this file.

Macros

#define DC_TRAIT_CLONEABLE(SELF)
#define DC_COPY_CLONE(SELF)
#define _DC_DERIVE_CLONE_MEMBER(MEMBER_TYPE, MEMBER_NAME)
#define DC_DERIVE_CLONE(TYPE)
#define _DC_DERIVE_STD_CLONE(TYPE, ...)

Macro Definition Documentation

◆ _DC_DERIVE_CLONE_MEMBER

#define _DC_DERIVE_CLONE_MEMBER ( MEMBER_TYPE,
MEMBER_NAME )
Value:
.MEMBER_NAME = NS(MEMBER_TYPE, clone)(&self->MEMBER_NAME),
static SELF clone(SELF const *self)
Definition template.h:215
#define NS(pre, post)
Definition namespace.h:4

Definition at line 11 of file clone.h.

11#define _DC_DERIVE_CLONE_MEMBER(MEMBER_TYPE, MEMBER_NAME) \
12 .MEMBER_NAME = NS(MEMBER_TYPE, clone)(&self->MEMBER_NAME),

◆ _DC_DERIVE_STD_CLONE

#define _DC_DERIVE_STD_CLONE ( TYPE,
... )
Value:
static TYPE NS(TYPE, clone)(TYPE const* self) { return *self; }

Definition at line 19 of file clone.h.

19#define _DC_DERIVE_STD_CLONE(TYPE, ...) \
20 static TYPE NS(TYPE, clone)(TYPE const* self) { return *self; }

◆ DC_COPY_CLONE

#define DC_COPY_CLONE ( SELF)
Value:
(*(SELF))
#define SELF
Definition def.h:52

Definition at line 9 of file clone.h.

◆ DC_DERIVE_CLONE

#define DC_DERIVE_CLONE ( TYPE)
Value:
static TYPE NS(TYPE, clone)(TYPE const* self) { \
return (TYPE){NS(TYPE, REFLECT)(_DC_DERIVE_CLONE_MEMBER)}; \
}
#define _DC_DERIVE_CLONE_MEMBER(MEMBER_TYPE, MEMBER_NAME)
Definition clone.h:11

Definition at line 14 of file clone.h.

14#define DC_DERIVE_CLONE(TYPE) \
15 static TYPE NS(TYPE, clone)(TYPE const* self) { \
16 return (TYPE){NS(TYPE, REFLECT)(_DC_DERIVE_CLONE_MEMBER)}; \
17 }

◆ DC_TRAIT_CLONEABLE

#define DC_TRAIT_CLONEABLE ( SELF)
Value:
#define DC_REQUIRE_METHOD(ret, obj, name, args)
Definition require.h:17

Definition at line 7 of file clone.h.