libcopp 2.3.2
Loading...
Searching...
No Matches
Data Structures | Namespaces | Macros | Typedefs | Functions
type_traits.h File Reference
#include <algorithm>
#include <cstddef>
#include <functional>
#include <type_traits>
#include <utility>
#include "libcopp/utils/config/compile_optimize.h"
#include "libcopp/utils/config/libcopp_build_features.h"
Include dependency graph for type_traits.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  nostd::details::__inv_unwrap< _Tp, _Up >
 
struct  nostd::details::__inv_unwrap< _Tp, ::std::reference_wrapper< _Up > >
 
struct  nostd::details::__invoke_memfun_ref
 
struct  nostd::details::__invoke_memfun_deref
 
struct  nostd::details::__invoke_memobj_ref
 
struct  nostd::details::__invoke_memobj_deref
 
struct  nostd::details::__invoke_other
 
struct  nostd::details::__result_of_tag_impl< bool, bool, _Functor, _ArgTypes >
 
struct  nostd::details::__result_of_tag_impl< true, false, _MemPtr, _Clazz, _ArgTypes... >
 
struct  nostd::details::__result_of_tag_impl< false, true, _MemPtr, _Clazz, _ArgTypes... >
 
struct  nostd::details::__invoke_tag< _Functor, _ArgTypes >
 
struct  nostd::is_function< T >
 
struct  nostd::max_alignof_size_helper< Len, First, Types... >
 
struct  nostd::max_alignof_size_helper< Len >
 
struct  nostd::max_sizeof_size_helper< Len, First, Types... >
 
struct  nostd::max_sizeof_size_helper< Len >
 
struct  nostd::aligned_union< Len, Types >
 
struct  nostd::aligned_union< Len, Types >::type
 
struct  nostd::aligned_storage< Len, Align >
 
struct  nostd::aligned_storage< Len, Align >::type
 
class  nostd::allocator_rebind_helper< AllocatorSource, TypeSource >
 
struct  nostd::allocator_rebind< Allocator, T, true >
 
struct  nostd::allocator_rebind< Allocator< Up, Args... >, T, false >
 

Namespaces

namespace  nostd
 
namespace  nostd::details
 

Macros

#define LIBCOPP_UTIL_NOSTD_INVOKE_RESULT_CONSTEXPR
 
#define LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CONDITION_NESTED_TYPE_AS_MEMBER(TEST_CLASS, NESTED_TYPE, TYPE_ALIAS, DEFAULT_TYPE)
 
#define LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CONDITION_NESTED_TYPE_AS_GLOBAL(TEST_CLASS, NESTED_TYPE, TYPE_ALIAS, DEFAULT_TYPE)
 

Typedefs

template<class... >
using nostd::void_t = void
 
template<typename T >
using nostd::add_const_t = typename ::std::add_const< T >::type
 
template<typename T >
using nostd::remove_const_t = typename ::std::remove_const< T >::type
 
template<typename T >
using nostd::add_volatile_t = typename ::std::add_volatile< T >::type
 
template<typename T >
using nostd::remove_volatile_t = typename ::std::remove_volatile< T >::type
 
template<typename T >
using nostd::add_cv_t = typename ::std::add_cv< T >::type
 
template<typename T >
using nostd::remove_cv_t = typename ::std::remove_cv< T >::type
 
template<typename T >
using nostd::add_pointer_t = typename ::std::add_pointer< T >::type
 
template<typename T >
using nostd::remove_pointer_t = typename ::std::remove_pointer< T >::type
 
template<typename T >
using nostd::remove_reference_t = typename ::std::remove_reference< T >::type
 
template<typename T >
using nostd::remove_cvref_t = remove_cv_t< remove_reference_t< T > >
 
template<typename T >
using nostd::decay_t = typename ::std::decay< T >::type
 
template<class... T>
using nostd::common_type_t = typename ::std::common_type< T... >::type
 
template<class T >
using nostd::underlying_type_t = typename ::std::underlying_type< T >::type
 
template<class T >
using nostd::remove_extent_t = typename ::std::remove_extent< T >::type
 
template<class T >
using nostd::remove_all_extents_t = typename ::std::remove_all_extents< T >::type
 
template<bool B, class T = void>
using nostd::enable_if_t = typename ::std::enable_if< B, T >::type
 
template<class F , class... ArgTypes>
using nostd::invoke_result = ::std::result_of< F(ArgTypes...)>
 
template<class F , class... ArgTypes>
using nostd::invoke_result_t = typename invoke_result< F, ArgTypes... >::type
 
template<std::size_t Len, std::size_t Align>
using nostd::aligned_storage_t = typename aligned_storage< Len, Align >::type
 
template<typename T >
using nostd::non_array = typename ::std::enable_if<!::std::is_array< T >::value, T >::type
 

Functions

template<typename _Tp , typename _Up = typename __inv_unwrap<_Tp>::type>
LIBCOPP_UTIL_SYMBOL_VISIBLE LIBCOPP_UTIL_NOSTD_INVOKE_RESULT_CONSTEXPR _Up && nostd::details::__invfwd (typename ::std::remove_reference< _Tp >::type &__t) noexcept
 
template<typename R , typename _Fn , typename... _Args>
LIBCOPP_UTIL_SYMBOL_VISIBLE LIBCOPP_UTIL_NOSTD_INVOKE_RESULT_CONSTEXPRnostd::details::__invoke_impl (__invoke_other, _Fn &&__f, _Args &&... __args)
 
template<typename R , typename _MemFun , typename _Tp , typename... _Args>
LIBCOPP_UTIL_SYMBOL_VISIBLE LIBCOPP_UTIL_NOSTD_INVOKE_RESULT_CONSTEXPRnostd::details::__invoke_impl (__invoke_memfun_ref, _MemFun &&__f, _Tp &&__t, _Args &&... __args)
 
template<typename R , typename _MemFun , typename _Tp , typename... _Args>
LIBCOPP_UTIL_SYMBOL_VISIBLE LIBCOPP_UTIL_NOSTD_INVOKE_RESULT_CONSTEXPRnostd::details::__invoke_impl (__invoke_memfun_deref, _MemFun &&__f, _Tp &&__t, _Args &&... __args)
 
template<typename R , typename _MemPtr , typename _Tp >
LIBCOPP_UTIL_SYMBOL_VISIBLE LIBCOPP_UTIL_NOSTD_INVOKE_RESULT_CONSTEXPRnostd::details::__invoke_impl (__invoke_memobj_ref, _MemPtr &&__f, _Tp &&__t)
 
template<typename R , typename _MemPtr , typename _Tp >
LIBCOPP_UTIL_SYMBOL_VISIBLE LIBCOPP_UTIL_NOSTD_INVOKE_RESULT_CONSTEXPRnostd::details::__invoke_impl (__invoke_memobj_deref, _MemPtr &&__f, _Tp &&__t)
 
template<typename F , typename... ArgTypes>
LIBCOPP_UTIL_SYMBOL_VISIBLE LIBCOPP_UTIL_NOSTD_INVOKE_RESULT_CONSTEXPR invoke_result_t< F, ArgTypes... > nostd::details::__invoke (F &&__fn, ArgTypes &&... __args)
 
template<typename F , typename... ArgTypes>
LIBCOPP_UTIL_SYMBOL_VISIBLE LIBCOPP_UTIL_NOSTD_INVOKE_RESULT_CONSTEXPR invoke_result_t< F, ArgTypes... > nostd::invoke (F &&__fn, ArgTypes &&... __args)
 

Macro Definition Documentation

◆ LIBCOPP_UTIL_NOSTD_INVOKE_RESULT_CONSTEXPR

#define LIBCOPP_UTIL_NOSTD_INVOKE_RESULT_CONSTEXPR

Definition at line 23 of file type_traits.h.

◆ LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CONDITION_NESTED_TYPE_AS_GLOBAL

#define LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CONDITION_NESTED_TYPE_AS_GLOBAL (   TEST_CLASS,
  NESTED_TYPE,
  TYPE_ALIAS,
  DEFAULT_TYPE 
)
Value:
template <class __TCNT> \
static typename __TCNT::NESTED_TYPE __LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CNTG_##TEST_CLASS##_##NESTED_TYPE##_helper( \
__TCNT*); \
static DEFAULT_TYPE __LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CNTG_##TEST_CLASS##_##NESTED_TYPE##_helper(...); \
\
using TYPE_ALIAS = decltype(__LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CNTG_##TEST_CLASS##_##NESTED_TYPE##_helper( \
static_cast<TEST_CLASS*>(nullptr)))

Definition at line 519 of file type_traits.h.

◆ LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CONDITION_NESTED_TYPE_AS_MEMBER

#define LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CONDITION_NESTED_TYPE_AS_MEMBER (   TEST_CLASS,
  NESTED_TYPE,
  TYPE_ALIAS,
  DEFAULT_TYPE 
)
Value:
private: \
template <class __TCNT> \
static typename __TCNT::NESTED_TYPE __LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CNTM_##TEST_CLASS##_##NESTED_TYPE##_helper( \
__TCNT*); \
static DEFAULT_TYPE __LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CNTM_##TEST_CLASS##_##NESTED_TYPE##_helper(...); \
\
public: \
using TYPE_ALIAS = decltype(__LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CNTM_##TEST_CLASS##_##NESTED_TYPE##_helper( \
static_cast<TEST_CLASS*>(nullptr)))

Definition at line 507 of file type_traits.h.