Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
ScopedCollection< I, siz >::ElementHolder Class Reference

#include "lib/scoped-collection.hpp"

Description

template<class I, size_t siz = sizeof(I)>
class lib::ScopedCollection< I, siz >::ElementHolder

Storage Frame to hold one Child object.

The storage will be an heap allocated array of such Wrapper objects.

Note
doesn't manage the Child

Definition at line 105 of file scoped-collection.hpp.

Public Member Functions

I & accessObj () const
 
void destroy ()
 
template<class TY , typename... ARGS>
TY & create (ARGS &&...args)
 place object of type TY, forwarding ctor arguments
 

Private Attributes

std::byte buf_ [siz]
 

Additional Inherited Members

- Private Member Functions inherited from NonCopyable
 ~NonCopyable ()=default
 
 NonCopyable ()=default
 
 NonCopyable (NonCopyable const &)=delete
 
NonCopyableoperator= (NonCopyable const &)=delete
 

Member Function Documentation

◆ accessObj()

template<class I , size_t siz = sizeof(I)>
I & accessObj ( ) const
inline

Definition at line 114 of file scoped-collection.hpp.

◆ destroy()

template<class I , size_t siz = sizeof(I)>
void destroy ( )
inline

Definition at line 120 of file scoped-collection.hpp.

◆ create()

template<class I , size_t siz = sizeof(I)>
template<class TY , typename... ARGS>
TY & create ( ARGS &&...  args)
inline

place object of type TY, forwarding ctor arguments

Definition at line 131 of file scoped-collection.hpp.

Member Data Documentation

◆ buf_

template<class I , size_t siz = sizeof(I)>
std::byte buf_[siz]
mutableprivate

Definition at line 109 of file scoped-collection.hpp.

+ Inheritance diagram for ScopedCollection< I, siz >::ElementHolder:
+ Collaboration diagram for ScopedCollection< I, siz >::ElementHolder:

The documentation for this class was generated from the following file: