CVB++ 15.0
Cvb::Shims Namespace Reference

Namespace to for standard types that are not available in C++14. More...

Classes

class  bad_optional_access
 Error when accessing not set value. More...
 
class  bad_variant_access
 Error when accessing not set alternative. More...
 
struct  in_place_t
 Disambiguation tags that can be passed to the constructors of optional() to indicate that the contained object should be constructed in-place. More...
 
struct  monostate
 Unit type intended for use as a well-behaved empty alternative in Shims::variant. More...
 
struct  nullopt_t
 Indicates optional() type with uninitialized state. More...
 
class  optional
 This class is a replacement for C++17 std::optional. More...
 
class  variant
 This class is a replacement for C++17 std::variant. More...
 
struct  variant_alternative
 Compile-time index access to the type of the alternatives at index I. More...
 
struct  variant_size
 Get the number of alternatives in a variant. More...
 

Typedefs

template<size_t I, class T>
using variant_alternative_t = typename variant_alternative<I, T>::type
 Helper type alias for Shims::variant_alternative.
 

Functions

constexpr bool operator< (monostate, monostate) noexcept
 
constexpr bool operator> (monostate, monostate) noexcept
 
constexpr bool operator<= (monostate, monostate) noexcept
 
constexpr bool operator>= (monostate, monostate) noexcept
 
constexpr bool operator== (monostate, monostate) noexcept
 
constexpr bool operator!= (monostate, monostate) noexcept
 
template<size_t I, class... TS>
const variant_alternative_t< I, variant< TS... > > & get (const variant< TS... > &var)
 Gets the value of the given Shims::variant var as the alternative with index I.
 
template<size_t I, class... TS>
variant_alternative_t< I, variant< TS... > > & get (variant< TS... > &var)
 Gets the value of the given Shims::variant var as the alternative with index I.
 
template<size_t I, class... TS>
variant_alternative_t< I, variant< TS... > > get (variant< TS... > &&var)
 Gets the value of the given Shims::variant var as the alternative with index I.
 
template<class T, class... TS>
const T & get (const variant< TS... > &var)
 Gets the value of the given Shims::variant var as the alternative with type T.
 
template<class T, class... TS>
T & get (variant< TS... > &var)
 Gets the value of the given Shims::variant var as the alternative with type T.
 
template<class T, class... TS>
get (variant< TS... > &&var)
 Gets the value of the given Shims::variant var as the alternative with type T.
 
template<size_t I, class... TS>
std::add_pointer< variant_alternative_t< I, variant< TS... > > >::type get_if (variant< TS... > *pvar) noexcept
 Tries to get the value of the given Shims::variant pointer pvar as the alternative with index I.
 
template<class T, class... TS>
std::add_pointer< constT >::type get_if (const variant< TS... > *pvar) noexcept
 Tries to get the value of the given Shims::variant pointer pvar as the alternative with type T.
 
template<class T, class... TS>
std::add_pointer< T >::type get_if (variant< TS... > *pvar) noexcept
 Tries to get the value of the given Shims::variant pointer pvar as the alternative with type T.
 
template<class T, class... TS>
bool holds_alternative (const variant< TS... > &var) noexcept
 Gets whether the Shims::variant var holds an instance of type T.
 
template<class VISITOR, class VARIANT>
auto visit (VISITOR &&visitor, VARIANT &&var) -> decltype(visitor(get< 0 >(var)))
 Visits the given Shims::variant var. Cvb::Shims::visit can only visit one variant (not multiple like std::visit).
 
template<class... TS>
bool operator== (const variant< TS... > &lhs, const variant< TS... > &rhs)
 Equality operator for Shims::variant objects.
 
template<class... TS>
bool operator!= (const variant< TS... > &lhs, const variant< TS... > &rhs)
 Inequality operator for Shims::variant objects.
 
template<class... TS>
bool operator< (const variant< TS... > &lhs, const variant< TS... > &rhs)
 Less than operator for Shims::variant objects.
 
template<class... TS>
bool operator<= (const variant< TS... > &lhs, const variant< TS... > &rhs)
 Less-than or equal operator for Shims::variant object.
 
template<class... TS>
bool operator> (const variant< TS... > &lhs, const variant< TS... > &rhs)
 Greater-than operator for Shims::variant object.
 
template<class... TS>
bool operator>= (const variant< TS... > &lhs, const variant< TS... > &rhs)
 Greater-than or equal operator for Shims::variant object.
 

Variables

static constexpr nullopt_t nullopt = {}
 Tag to indicate an optional not containing a value.
 
static constexpr in_place_t in_place {}
 Tag to indicate an optional to in-place construct a value.
 
static const constexpr size_t variant_npos = size_t(-1)
 Returned by variant::index() on invalid state.
 

Detailed Description

Namespace to for standard types that are not available in C++14.