public |
Inheritance Graph
graph BT
Generic
click Generic "classUtil_1_1Generic"
Description
Container for a value with generic type.
A Generic object is able to store a single object of different types. This allows for the usage of Generic as variable with a type that does not have to be known at compile-time.
Util::Generic value;
value = 42.0;
std::cout << value.contains<std::string>() << std::endl;
value = std::string("fourty-two");
std::cout << value.contains<std::string>() << std::endl;
std::cout << value.ref<std::string>() << std::endl;
value = false;
Author: Benjamin Eikel
Date: 2013-05-28
Classes
struct | Util::Generic::AbstractStorage Abstract base class for all template instantiations in subclasses. |
struct | Util::Generic::Storage |
Public Functions
Generic() Construct with invalid value. |
|
template< typename type_t > | |
Generic(type_t && object) Construct with a copy of the given object. |
|
Generic(const Generic & other) Copy construct from another generic object. |
|
Generic( Generic && void) Move construct from another generic object. |
|
~Generic() Destroy the generic object. |
|
template< typename type_t > | |
Generic & | operator=(type_t && object) Copy from another object. |
Generic & | operator=( Generic && void) Move construct from another generic object. |
bool | valid() const Check if the generic object contains any data. |
template< typename type_t > | |
bool | contains() const Check if the stored data is of the given type. |
template< typename type_t > | |
type_t * | get() |
template< typename type_t > | |
const type_t * | get() const |
template< typename type_t > | |
type_t & | ref() |
template< typename type_t > | |
const type_t & | ref() const |
Documentation
function
Util::Generic::Generic
public | inline |
Generic( | ) |
Construct with invalid value.
Defined in Util/Generic.h:75
function
Util::Generic::Generic
public | inline | explicit |
template< typename type_t > | ||
Generic( | type_t && | object ) |
Construct with a copy of the given object.
Defined in Util/Generic.h:80
function
Util::Generic::Generic
public | inline |
Generic( | const Generic & | other ) |
Copy construct from another generic object.
Defined in Util/Generic.h:86
function
Util::Generic::Generic
public |
Generic( | Generic && | void ) |
Move construct from another generic object.
Defined in Util/Generic.h:90
function
Util::Generic::~Generic
public |
~Generic( | ) |
Destroy the generic object.
Defined in Util/Generic.h:93
function
Util::Generic::operator=
public | inline |
template< typename type_t > | ||
Generic & operator=( | type_t && | object ) |
Copy from another object.
Defined in Util/Generic.h:97
function
Util::Generic::operator=
public |
Generic & operator=( | Generic && | void ) |
Move construct from another generic object.
Defined in Util/Generic.h:102
function
Util::Generic::valid
public | const | inline |
bool valid( | ) const |
Check if the generic object contains any data.
Defined in Util/Generic.h:105
function
Util::Generic::contains
public | const | inline |
template< typename type_t > | |
bool contains( | ) const |
Check if the stored data is of the given type.
Defined in Util/Generic.h:111
function
Util::Generic::get
public | inline |
template< typename type_t > | |
type_t * get( | ) |
Access the data of the generic object by pointer.
Returns
Pointer to the stored data, ornullptr
if no data is stored or the data is not of the requested type.
Defined in Util/Generic.h:122
function
Util::Generic::get
public | const | inline |
template< typename type_t > | |
const type_t * get( | ) const |
Access the data of the generic object for reading by pointer.
Returns
Pointer to the stored data, ornullptr
if no data is stored or the data is not of the requested type.
Defined in Util/Generic.h:140
function
Util::Generic::ref
public | inline |
template< typename type_t > | |
type_t & ref( | ) |
Access the data of the generic object by reference.
Exceptions
- std::bad_cast
- if no data is stored or the data is not of the requested type
Returns
Reference to the stored data
Defined in Util/Generic.h:153
function
Util::Generic::ref
public | const | inline |
template< typename type_t > | |
const type_t & ref( | ) const |
Access the data of the generic object for reading by reference.
Exceptions
- std::bad_cast
- if no data is stored or the data is not of the requested type
Returns
Reference to the stored data
Defined in Util/Generic.h:169