Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
BT::Any Class Reference

#include <safe_any.hpp>

Public Member Functions

 Any ()
 
 Any (const Any &other)
 
 Any (Any &&other)
 
 Any (const double &value)
 
 Any (const uint64_t &value)
 
 Any (const float &value)
 
 Any (const std::string &str)
 
 Any (const char *str)
 
 Any (const SafeAny::SimpleString &str)
 
template<typename T >
 Any (const T &value, EnableIntegral< T >=0)
 
template<typename T >
 Any (const T &value, EnableNonIntegral< T >=0)
 
template<typename T >
cast () const
 
const std::type_info & castedType () const noexcept
 
bool empty () const noexcept
 
bool isNumber () const
 
bool isString () const
 
Anyoperator= (const Any &other)
 
const std::type_info & type () const noexcept
 
 ~Any ()=default
 

Private Types

template<typename T >
using EnableArithmetic = typename std::enable_if< std::is_arithmetic< T >::value >::type *
 
template<typename T >
using EnableEnum = typename std::enable_if< std::is_enum< T >::value >::type *
 
template<typename T >
using EnableIntegral = typename std::enable_if< std::is_integral< T >::value||std::is_enum< T >::value >::type *
 
template<typename T >
using EnableNonIntegral = typename std::enable_if<!std::is_integral< T >::value &&!std::is_enum< T >::value >::type *
 
template<typename T >
using EnableString = typename std::enable_if< std::is_same< T, std::string >::value >::type *
 
template<typename T >
using EnableUnknownType = typename std::enable_if<!std::is_arithmetic< T >::value &&!std::is_enum< T >::value &&!std::is_same< T, std::string >::value >::type *
 

Private Member Functions

template<typename DST >
nonstd::expected< DST, std::string > convert (EnableString< DST >=0) const
 
template<typename DST >
nonstd::expected< DST, std::string > convert (EnableArithmetic< DST >=0) const
 
template<typename DST >
nonstd::expected< DST, std::string > convert (EnableEnum< DST >=0) const
 
template<typename DST >
nonstd::expected< DST, std::string > convert (EnableUnknownType< DST >=0) const
 
template<typename T >
std::string errorMsg () const
 

Private Attributes

linb::any _any
 
const std::type_info * _original_type
 

Detailed Description

Definition at line 22 of file safe_any.hpp.

Member Typedef Documentation

◆ EnableArithmetic

template<typename T >
using BT::Any::EnableArithmetic = typename std::enable_if<std::is_arithmetic<T>::value>::type*
private

Definition at line 36 of file safe_any.hpp.

◆ EnableEnum

template<typename T >
using BT::Any::EnableEnum = typename std::enable_if<std::is_enum<T>::value>::type*
private

Definition at line 39 of file safe_any.hpp.

◆ EnableIntegral

template<typename T >
using BT::Any::EnableIntegral = typename std::enable_if<std::is_integral<T>::value || std::is_enum<T>::value>::type*
private

Definition at line 26 of file safe_any.hpp.

◆ EnableNonIntegral

template<typename T >
using BT::Any::EnableNonIntegral = typename std::enable_if<!std::is_integral<T>::value && !std::is_enum<T>::value>::type*
private

Definition at line 30 of file safe_any.hpp.

◆ EnableString

template<typename T >
using BT::Any::EnableString = typename std::enable_if<std::is_same<T, std::string>::value>::type*
private

Definition at line 33 of file safe_any.hpp.

◆ EnableUnknownType

template<typename T >
using BT::Any::EnableUnknownType = typename std::enable_if<!std::is_arithmetic<T>::value && !std::is_enum<T>::value && !std::is_same<T, std::string>::value>::type*
private

Definition at line 44 of file safe_any.hpp.

Constructor & Destructor Documentation

◆ Any() [1/11]

BT::Any::Any ( )
inline

Definition at line 47 of file safe_any.hpp.

◆ ~Any()

BT::Any::~Any ( )
default

◆ Any() [2/11]

BT::Any::Any ( const Any other)
inline

Definition at line 53 of file safe_any.hpp.

◆ Any() [3/11]

BT::Any::Any ( Any &&  other)
inline

Definition at line 57 of file safe_any.hpp.

◆ Any() [4/11]

BT::Any::Any ( const double &  value)
inlineexplicit

Definition at line 61 of file safe_any.hpp.

◆ Any() [5/11]

BT::Any::Any ( const uint64_t &  value)
inlineexplicit

Definition at line 65 of file safe_any.hpp.

◆ Any() [6/11]

BT::Any::Any ( const float &  value)
inlineexplicit

Definition at line 69 of file safe_any.hpp.

◆ Any() [7/11]

BT::Any::Any ( const std::string &  str)
inlineexplicit

Definition at line 73 of file safe_any.hpp.

◆ Any() [8/11]

BT::Any::Any ( const char *  str)
inlineexplicit

Definition at line 77 of file safe_any.hpp.

◆ Any() [9/11]

BT::Any::Any ( const SafeAny::SimpleString str)
inlineexplicit

Definition at line 81 of file safe_any.hpp.

◆ Any() [10/11]

template<typename T >
BT::Any::Any ( const T &  value,
EnableIntegral< T >  = 0 
)
inlineexplicit

Definition at line 87 of file safe_any.hpp.

◆ Any() [11/11]

template<typename T >
BT::Any::Any ( const T &  value,
EnableNonIntegral< T >  = 0 
)
inlineexplicit

Definition at line 93 of file safe_any.hpp.

Member Function Documentation

◆ cast()

template<typename T >
T BT::Any::cast ( ) const
inline

Definition at line 120 of file safe_any.hpp.

◆ castedType()

const std::type_info& BT::Any::castedType ( ) const
inlinenoexcept

Definition at line 148 of file safe_any.hpp.

◆ convert() [1/4]

template<typename DST >
nonstd::expected<DST,std::string> BT::Any::convert ( EnableString< DST >  = 0) const
inlineprivate

Definition at line 165 of file safe_any.hpp.

◆ convert() [2/4]

template<typename DST >
nonstd::expected<DST,std::string> BT::Any::convert ( EnableArithmetic< DST >  = 0) const
inlineprivate

Definition at line 190 of file safe_any.hpp.

◆ convert() [3/4]

template<typename DST >
nonstd::expected<DST,std::string> BT::Any::convert ( EnableEnum< DST >  = 0) const
inlineprivate

Definition at line 216 of file safe_any.hpp.

◆ convert() [4/4]

template<typename DST >
nonstd::expected<DST,std::string> BT::Any::convert ( EnableUnknownType< DST >  = 0) const
inlineprivate

Definition at line 237 of file safe_any.hpp.

◆ empty()

bool BT::Any::empty ( ) const
inlinenoexcept

Definition at line 153 of file safe_any.hpp.

◆ errorMsg()

template<typename T >
std::string BT::Any::errorMsg ( ) const
inlineprivate

Definition at line 243 of file safe_any.hpp.

◆ isNumber()

bool BT::Any::isNumber ( ) const
inline

Definition at line 105 of file safe_any.hpp.

◆ isString()

bool BT::Any::isString ( ) const
inline

Definition at line 112 of file safe_any.hpp.

◆ operator=()

Any& BT::Any::operator= ( const Any other)
inline

Definition at line 98 of file safe_any.hpp.

◆ type()

const std::type_info& BT::Any::type ( ) const
inlinenoexcept

Definition at line 143 of file safe_any.hpp.

Member Data Documentation

◆ _any

linb::any BT::Any::_any
private

Definition at line 159 of file safe_any.hpp.

◆ _original_type

const std::type_info* BT::Any::_original_type
private

Definition at line 160 of file safe_any.hpp.


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


behaviortree_cpp_v3
Author(s): Michele Colledanchise, Davide Faconti
autogenerated on Mon Jul 3 2023 02:50:14