Loading...
Searching...
No Matches
macro.hpp File Reference

Go to the source code of this file.

Macros

#define __BY__DECL_CLONE(ME)
 Meta-programming macro definitions for byeol type system.
 
#define __BY__BASE_TYPE   type
 Define super meta type for class type introspection.
 
#define __BY__DECL_TYPE(METATYPE)
 
#define __BY__DECL_ADT_1(ME)
 
#define __BY__DECL_ADT_2(ME, SUPER)   __BY__DECL_ADT_3(ME, SUPER, __BY__BASE_TYPE)
 
#define __BY__DECL_ADT_3(ME, SUPER, SUPERTYPE)
 
#define __BY__DECL_ADT(...)   BY_OVERLOAD(__BY__DECL_ADT, __VA_ARGS__)
 
#define __BY__DECL_CLASS_1(ME)
 
#define __BY__DECL_CLASS_2(ME, SUPER)
 
#define __BY__DECL_CLASS_3(ME, SUPER, SUPERTYPE)
 
#define __BY__DECL_CLASS(...)   BY_OVERLOAD(__BY__DECL_CLASS, __VA_ARGS__)
 

Macro Definition Documentation

◆ __BY__DECL_ADT_1

#define __BY__DECL_ADT_1 ( ME)
Value:
__BY__DECL_TYPE(__BY__BASE_TYPE) \
__BY__DECL_INIT_META(ME)
#define __BY__DECL_ME_1(ME)
byeolMeta macro's sub-commands, ME
Definition declThis.hpp:30
#define __BY__BASE_TYPE
Define super meta type for class type introspection.
Definition macro.hpp:27

◆ __BY__DECL_ADT_3

#define __BY__DECL_ADT_3 ( ME,
SUPER,
SUPERTYPE )
Value:
__BY__DECL_ME_2(ME, SUPER) \
__BY__DECL_TYPE(SUPERTYPE) \
__BY__DECL_INIT_META(ME)

◆ __BY__DECL_CLASS_1

#define __BY__DECL_CLASS_1 ( ME)
Value:
__BY__DECL_ADT_1(ME) \
__BY__DECL_CLONE(ME)

◆ __BY__DECL_CLASS_2

#define __BY__DECL_CLASS_2 ( ME,
SUPER )
Value:
__BY__DECL_ADT_2(ME, SUPER) \
__BY__DECL_CLONE(ME)

◆ __BY__DECL_CLASS_3

#define __BY__DECL_CLASS_3 ( ME,
SUPER,
SUPERTYPE )
Value:
__BY__DECL_ADT_3(ME, SUPER, SUPERTYPE) \
__BY__DECL_CLONE(ME)

◆ __BY__DECL_CLONE

#define __BY__DECL_CLONE ( ME)
Value:
public: \
clonable* clone() const override { return new ME(*this); } \
\
private:

Meta-programming macro definitions for byeol type system.

◆ __BY__DECL_TYPE

#define __BY__DECL_TYPE ( METATYPE)
Value:
public: \
typedef METATYPE metaType; \
const __BY__BASE_TYPE& getType() const override { return ttype<me>::get(); } \
\
private:
to Top