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

Go to the source code of this file.

Macros

#define DC_TRAIT_CLONEABLE(SELF)
 The clone trait. For cloning an object into another owned object.
#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 DC_PUBLIC SELF clone(SELF const *self)
Definition template.h:215
#define NS(pre, post)
Definition namespace.h:14

Definition at line 15 of file clone.h.

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

◆ _DC_DERIVE_STD_CLONE

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

Definition at line 23 of file clone.h.

23#define _DC_DERIVE_STD_CLONE(TYPE, ...) \
24 DC_PUBLIC 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 13 of file clone.h.

◆ DC_DERIVE_CLONE

#define DC_DERIVE_CLONE ( TYPE)
Value:
DC_PUBLIC 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:15

Definition at line 18 of file clone.h.

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 }

◆ DC_TRAIT_CLONEABLE

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

The clone trait. For cloning an object into another owned object.

Definition at line 11 of file clone.h.