qxLib
Classes | Public Member Functions | List of all members
qx::sbo_poly< base_t, nSBOSize_ > Class Template Reference

Small Buffer Object for polymorphic classes. More...

#include <sbo_poly.h>

Public Member Functions

template<sbo_poly_assignable_c< base_t > derived_t>
 sbo_poly (derived_t object) noexcept
 sbo_poly object constructor More...
 
template<sbo_poly_assignable_c< base_t > derived_t>
sbo_polyoperator= (derived_t object) noexcept
 operator= More...
 
template<sbo_poly_assignable_c< base_t > derived_t>
void assign (derived_t object) noexcept
 Assign a new object to this SBO. More...
 
base_t & get () noexcept
 Get object reference. Always valid. More...
 
const base_t & get () const noexcept
 Get object reference. Always valid. More...
 

Detailed Description

template<class base_t, size_t nSBOSize_>
class qx::sbo_poly< base_t, nSBOSize_ >

Small Buffer Object for polymorphic classes.

If the inherited class fits into the specified buffer, it stores it in place; if not, it allocates memory for it. Allows you to increase cache locality when storing in containers.

Template Parameters
base_t- base class type, you'll be able to work with each element through its interface
nSBOSize_- the size of the whole SBO type, including internal data
Author
Khrapov
Date
24.12.2025

Definition at line 35 of file sbo_poly.h.

Constructor & Destructor Documentation

◆ sbo_poly()

template<class base_t , size_t nSBOSize_>
template<sbo_poly_assignable_c< base_t > derived_t>
qx::sbo_poly< base_t, nSBOSize_ >::sbo_poly ( derived_t  object)
noexcept

sbo_poly object constructor

Template Parameters
derived_t- type inherited from base_t
Parameters
object- an object to store

Definition at line 15 of file sbo_poly.inl.

Member Function Documentation

◆ assign()

template<class base_t , size_t nSBOSize_>
template<sbo_poly_assignable_c< base_t > derived_t>
void qx::sbo_poly< base_t, nSBOSize_ >::assign ( derived_t  object)
noexcept

Assign a new object to this SBO.

Template Parameters
derived_t- type inherited from base_t
Parameters
object- an object to store

Definition at line 91 of file sbo_poly.inl.

◆ get() [1/2]

template<class base_t , size_t nSBOSize_>
const base_t & qx::sbo_poly< base_t, nSBOSize_ >::get
noexcept

Get object reference. Always valid.

Return values
-object reference

Definition at line 125 of file sbo_poly.inl.

◆ get() [2/2]

template<class base_t , size_t nSBOSize_>
base_t & qx::sbo_poly< base_t, nSBOSize_ >::get
noexcept

Get object reference. Always valid.

Return values
-object reference

Definition at line 119 of file sbo_poly.inl.

◆ operator=()

template<class base_t , size_t nSBOSize_>
template<sbo_poly_assignable_c< base_t > derived_t>
sbo_poly& qx::sbo_poly< base_t, nSBOSize_ >::operator= ( derived_t  object)
noexcept

operator=

Template Parameters
derived_t- type inherited from base_t
Parameters
object- an object to store
Return values
-this object reference

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