Bitcoin Core 29.99.0
P2P Digital Currency
Public Member Functions | Public Attributes | List of all members
mp::PtrOrValue< T > Struct Template Reference

Convenient wrapper around std::variant<T*, T> More...

#include <util.h>

Public Member Functions

template<typename... Args>
 PtrOrValue (T *ptr, Args &&... args)
 
T & operator* ()
 
T * operator-> ()
 
T & operator* () const
 
T * operator-> () const
 

Public Attributes

std::variant< T *, T > data
 

Detailed Description

template<typename T>
struct mp::PtrOrValue< T >

Convenient wrapper around std::variant<T*, T>

Definition at line 134 of file util.h.

Constructor & Destructor Documentation

◆ PtrOrValue()

template<typename T >
template<typename... Args>
mp::PtrOrValue< T >::PtrOrValue ( T *  ptr,
Args &&...  args 
)
inline

Definition at line 138 of file util.h.

Member Function Documentation

◆ operator*() [1/2]

template<typename T >
T & mp::PtrOrValue< T >::operator* ( )
inline

Definition at line 140 of file util.h.

◆ operator*() [2/2]

template<typename T >
T & mp::PtrOrValue< T >::operator* ( ) const
inline

Definition at line 142 of file util.h.

◆ operator->() [1/2]

template<typename T >
T * mp::PtrOrValue< T >::operator-> ( )
inline

Definition at line 141 of file util.h.

◆ operator->() [2/2]

template<typename T >
T * mp::PtrOrValue< T >::operator-> ( ) const
inline

Definition at line 143 of file util.h.

Member Data Documentation

◆ data

template<typename T >
std::variant<T*, T> mp::PtrOrValue< T >::data

Definition at line 135 of file util.h.


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