BDE 4.39.x Production Release
Loading...
Searching...
No Matches
bsls::ObjectBuffer< TYPE > Union Template Reference

#include <bsls_objectbuffer.h>

Detailed Description

template<class TYPE>
union bsls::ObjectBuffer< TYPE >

An instance of this union is a raw block of memory suitable for storing an object of type TYPE. Specifically, the size and alignment of this union exactly matches that of TYPE. A TYPE object can be constructed into an ObjectBuffer using the placement new operator and can be destroyed by explicitly calling its destructor, ~TYPE(). It is the user's responsibility to perform this construction and destruction; an ObjectBuffer object does not manage the construction or destruction of any other objects.

Note
Note that a collaboration is implied between ObjectBuffer and the user. An ObjectBuffer provides aligned memory and the user handles construction and destruction of the object contained within that memory.

Public Member Functions

TYPE * address ()
 
char * buffer ()
 
TYPE & object ()
 
const TYPE * address () const
 
const char * buffer () const
 
const TYPE & object () const
 

Member Function Documentation

◆ address() [1/2]

template<class TYPE >
TYPE * bsls::ObjectBuffer< TYPE >::address ( )
inline

Return the address of the first byte of this object, cast to a TYPE * pointer.

◆ address() [2/2]

template<class TYPE >
const TYPE * bsls::ObjectBuffer< TYPE >::address ( ) const
inline

Return the address of the first byte of this object, cast to a const TYPE * pointer.

◆ buffer() [1/2]

template<class TYPE >
char * bsls::ObjectBuffer< TYPE >::buffer ( )
inline

Return the address of the first byte of this object, cast to a char * pointer.

◆ buffer() [2/2]

template<class TYPE >
const char * bsls::ObjectBuffer< TYPE >::buffer ( ) const
inline

Return the address of the first byte of this object, cast to a const char * pointer.

◆ object() [1/2]

template<class TYPE >
TYPE & bsls::ObjectBuffer< TYPE >::object ( )
inline

Return a modifiable reference to the TYPE object occupying this buffer. The referenced object has undefined state unless a valid TYPE object has been constructed in this buffer.

◆ object() [2/2]

template<class TYPE >
const TYPE & bsls::ObjectBuffer< TYPE >::object ( ) const
inline

Return a const reference to the TYPE object occupying this buffer. The referenced object has undefined state unless a valid TYPE object has been constructed in this buffer.


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