Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
StoreFunPtr Class Reference

#include "lib/meta/function-erasure.hpp"

Description

Policy for FunErasure: store a bare function pointer.

Using this policy allows to store a conventional function ptr, while still being able to re-access it later with run-time type check. The price to pay is vtable access.

Definition at line 142 of file function-erasure.hpp.

Public Member Functions

template<typename SIG >
 StoreFunPtr (SIG &fun)
 
template<typename SIG >
 StoreFunPtr (SIG *fun)
 
template<typename SIG >
SIGgetFun () const
 
- Public Member Functions inherited from InPlaceAnyHolder< siz, AccessPolicy >
 ~InPlaceAnyHolder ()
 
void clear ()
 
 InPlaceAnyHolder ()
 
template<class SUB >
 InPlaceAnyHolder (SUB const &obj)
 
 InPlaceAnyHolder (InPlaceAnyHolder const &ref)
 
InPlaceAnyHolderoperator= (InPlaceAnyHolder const &ref)
 
template<class SUB >
InPlaceAnyHolderoperator= (SUB const &newContent)
 
template<class SUB >
SUB & get () const
 re-accessing the concrete contained object.
 
bool empty () const
 
bool isValid () const
 
 operator bool () const
 

Additional Inherited Members

- Protected Member Functions inherited from InPlaceAnyHolder< siz, AccessPolicy >
Bufferbuff ()
 
const Bufferbuff () const
 
void killBuffer ()
 
void make_emptyBuff ()
 
template<class SUB >
void place_inBuff (SUB const &obj)
 
void clone_inBuff (InPlaceAnyHolder const &ref)
 
BaseP asBase () const
 <
 

Constructor & Destructor Documentation

◆ StoreFunPtr() [1/2]

template<typename SIG >
StoreFunPtr ( SIG fun)
inline

Definition at line 147 of file function-erasure.hpp.

◆ StoreFunPtr() [2/2]

template<typename SIG >
StoreFunPtr ( SIG fun)
inline

Definition at line 152 of file function-erasure.hpp.

Member Function Documentation

◆ getFun()

template<typename SIG >
SIG & getFun ( ) const
inline

Definition at line 158 of file function-erasure.hpp.

+ Inheritance diagram for StoreFunPtr:
+ Collaboration diagram for StoreFunPtr:

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