Open CASCADE Technology 7.8.2.dev
NCollection_DefineHSequence.hxx File Reference

Macros

#define DEFINE_HSEQUENCE(HClassName, _SequenceType_)
 
#define IMPLEMENT_HSEQUENCE(HClassName)
 

Macro Definition Documentation

◆ DEFINE_HSEQUENCE

#define DEFINE_HSEQUENCE ( HClassName,
_SequenceType_ )
Value:
class HClassName : public _SequenceType_, public Standard_Transient { \
public: \
DEFINE_STANDARD_ALLOC \
DEFINE_NCOLLECTION_ALLOC \
HClassName () {} \
HClassName (const _SequenceType_& theOther) : _SequenceType_(theOther) {} \
const _SequenceType_& Sequence () const { return *this; } \
void Append (const _SequenceType_::value_type& theItem) { \
_SequenceType_::Append (theItem); \
} \
void Append (_SequenceType_& theSequence) { \
_SequenceType_::Append (theSequence); \
} \
_SequenceType_& ChangeSequence () { return *this; } \
template <class T> \
void Append (const Handle(T)& theOther, \
typename opencascade::std::enable_if<opencascade::std::is_base_of<HClassName, T>::value>::type * = 0) { \
_SequenceType_::Append (theOther->ChangeSequence()); \
} \
DEFINE_STANDARD_RTTI_INLINE(HClassName,Standard_Transient) \
}; \
DEFINE_STANDARD_HANDLE (HClassName, Standard_Transient)
#define Handle(Class)
Define Handle() macro.
Definition Standard_Handle.hxx:399
Abstract class which forms the root of the entire Transient class hierarchy.
Definition Standard_Transient.hxx:35

◆ IMPLEMENT_HSEQUENCE

#define IMPLEMENT_HSEQUENCE ( HClassName)