Pigweed
C/C++ API Reference
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
Public Member Functions | List of all members
pw::multibuf_impl::Instance< MultiBufType > Class Template Reference

Public Member Functions

constexpr Instance (Allocator &allocator)
 
constexpr Instance (Instance &&)=default
 
constexpr Instanceoperator= (Instance &&)=default
 
constexpr Instance (MultiBufType &&mb)
 
constexpr Instanceoperator= (MultiBufType &&mb)
 
MultiBufType * operator-> ()
 
const MultiBufType * operator-> () const
 
MultiBufType & operator* () &
 
const MultiBufType & operator* () const &
 
MultiBufType && operator* () &&
 
const MultiBufType && operator* () const &&
 
 operator MultiBufType & () &
 
 operator const MultiBufType & () const &
 
 operator MultiBufType && () &&
 
 operator const MultiBufType && () const &&
 

Detailed Description

template<typename MultiBufType>
class pw::multibuf_impl::Instance< MultiBufType >

An instantiation of a MultiBuf.

BasicMultiBuf represents the interface of a particular MultiBuf type. It stores no state, and cannot be instantiated directly. Instead, this type can be used to create variables and members of a particular MultiBuf type.

These can then be "deferenced" to be passed to routines that take a parameter of the same MultiBuf type, or converted to a different type using as, e.g.

extern void AdjustLayers(LayerableMultiBuf&);
extern void DoTheThing(MyMultiBuf&);
MyMultiBufInstance mb = InitMyMultiBufInstance();
AdjustLayers(mb->as<LayerableMultiBuf>());
DoTheThing(*mb);

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