Reference wrapper for a stored attribute value. More...
#include <value_ref_fwd.hpp>
Public Types | |
typedef void | _has_basic_formatting_ostream_insert_operator |
typedef T | type |
Public Member Functions | |
BOOST_DEFAULTED_FUNCTION (value_ref(value_ref const &that), BOOST_NOEXCEPT:base_type(static_cast< base_type const & >(that)){}) template< typename U > explicit value_ref(U const &val | |
Default constructor. More... | |
Reference wrapper for a stored attribute value.
The value_ref
class template provides access to the stored attribute value. It is not a traditional reference wrapper since it may be empty (i.e. refer to no value at all) and it can also refer to values of different types. Therefore its interface and behavior combines features of Boost.Ref, Boost.Optional and Boost.Variant, depending on the use case.
The template parameter T
can be a single type or an MPL sequence of possible types being referred. The reference wrapper will act as either an optional reference or an optional variant of references to the specified types. In any case, the referred values will not be modifiable (i.e. value_ref
always models a const reference).
Template parameter TagT
is optional. It can be used for customizing the operations on this reference wrapper, such as putting the referred value to log.
typedef void boost::value_ref< T, TagT >::_has_basic_formatting_ostream_insert_operator |
|
inherited |
boost::value_ref< T, TagT >::BOOST_DEFAULTED_FUNCTION | ( | value_ref< T, TagT >(value_ref< T, TagT > const &that) | , |
BOOST_NOEXCEPT:base_type(static_cast< base_type const & >(that)){} | |||
) | const |
Default constructor.
Creates a reference wrapper that does not refer to a value.
Copy constructor.
Initializing constructor. Creates a reference wrapper that refers to the specified value.