Bayeux  3.4.1
Core Foundation library for SuperNEMO
Classes | Namespaces | Macros
i_cloneable.h File Reference
#include <iostream>
#include <typeinfo>
#include <datatools/caster_utils.h>

Go to the source code of this file.

Classes

class  datatools::i_cloneable
 A pure abstract class (interface) for inherited cloneable classes. More...
 

Namespaces

 datatools
 The Bayeux/datatools library top-level namespace.
 

Macros

#define DATATOOLS_CLONEABLE_DECLARATION(Copyable)
 
#define DATATOOLS_CLONEABLE_INLINE(Copyable)
 
#define DATATOOLS_CLONEABLE_IMPLEMENTATION(Copyable)
 
#define DATATOOLS_CLONEABLE_TO_SERIALIZABLE_CASTER_DECLARATION(Cloneable)   DATATOOLS_CASTER_DECLARATION(datatools::i_cloneable,datatools::i_serializable, Cloneable,g_cloneable_to_serializable_caster,get_cloneable_to_serializable_caster) \
 
#define DATATOOLS_CLONEABLE_TO_SERIALIZABLE_CASTER_IMPLEMENTATION(Cloneable)   DATATOOLS_CASTER_IMPLEMENTATION(datatools::i_cloneable,datatools::i_serializable, Cloneable,g_cloneable_to_serializable_caster,get_cloneable_to_serializable_caster) \
 

Macro Definition Documentation

◆ DATATOOLS_CLONEABLE_DECLARATION

#define DATATOOLS_CLONEABLE_DECLARATION (   Copyable)
Value:
public: \
virtual Copyable* clone(void) const; \

◆ DATATOOLS_CLONEABLE_IMPLEMENTATION

#define DATATOOLS_CLONEABLE_IMPLEMENTATION (   Copyable)
Value:
Copyable* Copyable::clone(void) const { \
return datatools::i_cloneable::clone_it<Copyable>(*this); \
} \

◆ DATATOOLS_CLONEABLE_INLINE

#define DATATOOLS_CLONEABLE_INLINE (   Copyable)
Value:
public: \
virtual Copyable* clone(void) const { \
return datatools::i_cloneable::clone_it<Copyable>(*this); \
}

◆ DATATOOLS_CLONEABLE_TO_SERIALIZABLE_CASTER_DECLARATION

#define DATATOOLS_CLONEABLE_TO_SERIALIZABLE_CASTER_DECLARATION (   Cloneable)    DATATOOLS_CASTER_DECLARATION(datatools::i_cloneable,datatools::i_serializable, Cloneable,g_cloneable_to_serializable_caster,get_cloneable_to_serializable_caster) \

◆ DATATOOLS_CLONEABLE_TO_SERIALIZABLE_CASTER_IMPLEMENTATION

#define DATATOOLS_CLONEABLE_TO_SERIALIZABLE_CASTER_IMPLEMENTATION (   Cloneable)    DATATOOLS_CASTER_IMPLEMENTATION(datatools::i_cloneable,datatools::i_serializable, Cloneable,g_cloneable_to_serializable_caster,get_cloneable_to_serializable_caster) \