dune-functions  2.5.1
Public Member Functions | List of all members
Dune::Functions::Optional< T > Class Template Reference

A wrapper that can either contain an object of T or be empty. More...

#include <dune/functions/common/optional.hh>

Inheritance diagram for Dune::Functions::Optional< T >:
Inheritance graph

Public Member Functions

 Optional ()
 Default constructor. More...
 
template<class TT , disableCopyMove< Optional, TT > = 0>
 Optional (TT &&t)
 Construct internal T from given argument. More...
 
 Optional (Optional &&other)
 Move constructor. More...
 
 Optional (const Optional &other)
 Copy constructor. More...
 
 ~Optional ()
 Destructor. More...
 
template<class TT , disableCopyMove< Optional, TT > = 0>
Optionaloperator= (TT &&t)
 Assignment. More...
 
Optionaloperator= (const Optional &other)
 Copy assignment from optional. More...
 
Optionaloperator= (Optional &&other)
 Move assignment from optional. More...
 
 operator bool () const
 Check if *this is not emtpy. More...
 
const T & value () const
 Get reference to internal T. More...
 
T & value ()
 Get mutable reference to internal T. More...
 
template<class... Args>
void emplace (Args &&... args)
 Construct internal T from given arguments. More...
 
void release ()
 Destruct internal T leaving *this in empty state. More...
 

Detailed Description

template<class T>
class Dune::Functions::Optional< T >

A wrapper that can either contain an object of T or be empty.

Template Parameters
TType of wrapped objects

Constructor & Destructor Documentation

◆ Optional() [1/4]

template<class T>
Dune::Functions::Optional< T >::Optional ( )
inline

Default constructor.

◆ Optional() [2/4]

template<class T>
template<class TT , disableCopyMove< Optional, TT > = 0>
Dune::Functions::Optional< T >::Optional ( TT &&  t)
inline

Construct internal T from given argument.

◆ Optional() [3/4]

template<class T>
Dune::Functions::Optional< T >::Optional ( Optional< T > &&  other)
inline

Move constructor.

◆ Optional() [4/4]

template<class T>
Dune::Functions::Optional< T >::Optional ( const Optional< T > &  other)
inline

Copy constructor.

◆ ~Optional()

template<class T>
Dune::Functions::Optional< T >::~Optional ( )
inline

Destructor.

Member Function Documentation

◆ emplace()

template<class T>
template<class... Args>
void Dune::Functions::Optional< T >::emplace ( Args &&...  args)
inline

Construct internal T from given arguments.

◆ operator bool()

template<class T>
Dune::Functions::Optional< T >::operator bool ( ) const
inlineexplicit

Check if *this is not emtpy.

◆ operator=() [1/3]

template<class T>
template<class TT , disableCopyMove< Optional, TT > = 0>
Optional& Dune::Functions::Optional< T >::operator= ( TT &&  t)
inline

Assignment.

If internal T exists, this does an assignement from argument, otherwise a construction.

◆ operator=() [2/3]

template<class T>
Optional& Dune::Functions::Optional< T >::operator= ( const Optional< T > &  other)
inline

Copy assignment from optional.

◆ operator=() [3/3]

template<class T>
Optional& Dune::Functions::Optional< T >::operator= ( Optional< T > &&  other)
inline

Move assignment from optional.

◆ release()

template<class T>
void Dune::Functions::Optional< T >::release ( )
inline

Destruct internal T leaving *this in empty state.

◆ value() [1/2]

template<class T>
const T& Dune::Functions::Optional< T >::value ( ) const
inline

Get reference to internal T.

◆ value() [2/2]

template<class T>
T& Dune::Functions::Optional< T >::value ( )
inline

Get mutable reference to internal T.


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