XrdCl::Optional< T > Class Template Reference

#include <XrdClOptional.hh>

Collaboration diagram for XrdCl::Optional< T >:
Collaboration graph
[legend]

List of all members.

Classes

union  Storage

Public Member Functions

 Optional (const T &t)
 Constructor for value.
 Optional (const None &n=none)
 Default constructor.
 Optional (const Optional &opt)
 Copy constructor.
 Optional (Optional &&opt)
 Move constructor.
Optionaloperator= (const Optional &opt)
 Copy assignment operator.
Optionaloperator= (Optional &&opt)
 Move assignment operator.
 operator bool () const
 Conversion to boolean.
T & operator* ()
 Dereference operator.
const T & operator* () const
 Dereference operator.

Private Attributes

bool optional
 true if the value is optional, false otherwise
union XrdCl::Optional::Storage memory

Detailed Description

template<typename T>
class XrdCl::Optional< T >

The Optional class


Constructor & Destructor Documentation

template<typename T>
XrdCl::Optional< T >::Optional ( const T &  t  )  [inline]

Constructor for value.

References XrdCl::Optional< T >::memory, and XrdCl::Optional< T >::Storage::value.

template<typename T>
XrdCl::Optional< T >::Optional ( const None n = none  )  [inline]

Default constructor.

template<typename T>
XrdCl::Optional< T >::Optional ( const Optional< T > &  opt  )  [inline]
template<typename T>
XrdCl::Optional< T >::Optional ( Optional< T > &&  opt  )  [inline]

Member Function Documentation

template<typename T>
XrdCl::Optional< T >::operator bool (  )  const [inline]

Conversion to boolean.

References XrdCl::Optional< T >::optional.

template<typename T>
const T& XrdCl::Optional< T >::operator* (  )  const [inline]
template<typename T>
T& XrdCl::Optional< T >::operator* (  )  [inline]
template<typename T>
Optional& XrdCl::Optional< T >::operator= ( Optional< T > &&  opt  )  [inline]
template<typename T>
Optional& XrdCl::Optional< T >::operator= ( const Optional< T > &  opt  )  [inline]

Member Data Documentation

template<typename T>
union XrdCl::Optional::Storage XrdCl::Optional< T >::memory [private]

we use union as this is the only way to obtain memory with correct alignment and don't actually construct the object

Referenced by XrdCl::Optional< T >::operator*(), XrdCl::Optional< T >::operator=(), and XrdCl::Optional< T >::Optional().

template<typename T>
bool XrdCl::Optional< T >::optional [private]

true if the value is optional, false otherwise

Referenced by XrdCl::Optional< T >::operator bool(), XrdCl::Optional< T >::operator=(), and XrdCl::Optional< T >::Optional().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 7 Jul 2020 for xrootd by  doxygen 1.6.1