|
libebml_ng
|
CRTP template for EBML Element instances. More...
#include <ebmlElement.h>
Public Types | |
| using | ebmltype = ebmltype_t |
Public Member Functions | |
| template<typename... Args> | |
| ebmlElementCRTP (const ebmltype_t *cls, Args &&... args) | |
| const ebmltype_t & | cls () const |
| ebml::ptr< ebmlinst_t > | sp () |
| ebml::ptr< const ebmlinst_t > | sp () const |
| ebml::wptr< ebmlinst_t > | wp () |
| ebml::wptr< const ebmlinst_t > | wp () const |
| ebml::ptr< ebmlinst_t > | clone () const |
| ebml::ptr< ebmlElement > | sp () |
| Returns a shared pointer to the element instance. More... | |
| ebml::ptr< const ebmlElement > | sp () const |
| Returns a shared pointer to a const element. More... | |
| template<typename T > | |
| ebml::ptr< T > | sp () |
| template<typename T > | |
| ebml::ptr< T > | sp () const |
| ebml::wptr< ebmlElement > | wp () |
| ebml::wptr< const ebmlElement > | wp () const |
| template<typename T > | |
| ebml::wptr< T > | wp () |
| template<typename T > | |
| ebml::wptr< T > | wp () const |
Protected Member Functions | |
| ebmlElement * | _clone () const |
CRTP template for EBML Element instances.
This template implements the Curiously Recurring Template Pattern (CRTP) to provide type-safe behavior for EBML element instances. By inheriting from this template, concrete element instance classes gain automated, type-safe casting and cloning functionalities, which simplifies memory management and promotes a robust API.
| ebmltype_t | The concrete element type class associated with this instance. |
| ebmlinst_t | The concrete element instance class using this CRTP mixin. |
| instbase_t | The base element instance class (default is ebml::ebmlElement). |
ebml::ebmlTypeCRTP<ebmltype_t, ebmlinst_t, typebase_t> | using ebml::ebmlElementCRTP< ebmltype_t, ebmlinst_t, instbase_t >::ebmltype = ebmltype_t |
|
inline |
|
protected |
Reimplemented in ebml::ebmlElementCRTP< ebmlLazyLoadType, ebmlLazyLoad, ebmlMasterElement >, ebml::ebmlElementCRTP< ebmlPairType< K, V >, ebmlPair< K, V >, ebmlMasterElement >, ebml::ebmlElementCRTP< ebmlMapType< K, V, H, E, A, B >, ebmlMap< K, V, H, E, A, B >, ebmlMasterElement >, ebml::ebmlElementCRTP< ebmlStructType, ebmlStruct, ebmlMasterElement >, and ebml::ebmlElementCRTP< ebmlListType, ebmlList, ebmlMasterElement >.
| ebml::ptr<ebmlinst_t> ebml::ebmlElementCRTP< ebmltype_t, ebmlinst_t, instbase_t >::clone | ( | ) | const |
| const ebmltype_t& ebml::ebmlElementCRTP< ebmltype_t, ebmlinst_t, instbase_t >::cls | ( | ) | const |
Reimplemented in ebml::ebmlElementCRTP< ebmlLazyLoadType, ebmlLazyLoad, ebmlMasterElement >, ebml::ebmlElementCRTP< ebmlPairType< K, V >, ebmlPair< K, V >, ebmlMasterElement >, ebml::ebmlElementCRTP< ebmlMapType< K, V, H, E, A, B >, ebmlMap< K, V, H, E, A, B >, ebmlMasterElement >, ebml::ebmlElementCRTP< ebmlStructType, ebmlStruct, ebmlMasterElement >, and ebml::ebmlElementCRTP< ebmlListType, ebmlList, ebmlMasterElement >.
| ebml::ptr< ebmlElement > ebml::ebmlElement::sp |
Returns a shared pointer to the element instance.
| ebml::ptr< const ebmlElement > ebml::ebmlElement::sp |
Returns a shared pointer to a const element.
|
inline |
|
inline |
| ebml::ptr<ebmlinst_t> ebml::ebmlElementCRTP< ebmltype_t, ebmlinst_t, instbase_t >::sp | ( | ) |
| ebml::ptr<const ebmlinst_t> ebml::ebmlElementCRTP< ebmltype_t, ebmlinst_t, instbase_t >::sp | ( | ) | const |
|
inline |
| ebml::wptr< ebmlElement > ebml::ebmlElement::wp |
| ebml::wptr< const ebmlElement > ebml::ebmlElement::wp |
|
inline |
| ebml::wptr<ebmlinst_t> ebml::ebmlElementCRTP< ebmltype_t, ebmlinst_t, instbase_t >::wp | ( | ) |
| ebml::wptr<const ebmlinst_t> ebml::ebmlElementCRTP< ebmltype_t, ebmlinst_t, instbase_t >::wp | ( | ) | const |
1.8.14