KTL
Loading...
Searching...
No Matches
meta.h File Reference
#include "source_location.h"
#include <type_traits>

Go to the source code of this file.

Classes

struct  ktl::detail::has_no_value_type< Alloc, typename >
 
struct  ktl::detail::has_no_value_type< Alloc, std::void_t< typename Alloc::value_type > >
 
struct  ktl::detail::get_size_type< Alloc, typename >
 
struct  ktl::detail::get_size_type< Alloc, std::void_t< typename Alloc::size_type > >
 
struct  ktl::detail::has_plain_allocate< Alloc, typename >
 
struct  ktl::detail::has_plain_allocate< Alloc, std::void_t< decltype(std::declval< Alloc & >().allocate(std::declval< size_t >()))> >
 
struct  ktl::detail::has_construct< Void, Types >
 
struct  ktl::detail::has_construct< std::void_t< decltype(std::declval< Alloc & >().construct(std::declval< Args >()...))>, Alloc, Args... >
 
struct  ktl::detail::has_destroy< Alloc, Ptr, typename >
 
struct  ktl::detail::has_destroy< Alloc, Ptr, std::void_t< decltype(std::declval< Alloc & >().destroy(std::declval< Ptr >()))> >
 
struct  ktl::detail::has_max_size< Alloc, typename >
 
struct  ktl::detail::has_max_size< Alloc, std::void_t< decltype(std::declval< Alloc & >().max_size())> >
 
struct  ktl::detail::has_owns< Alloc, typename >
 
struct  ktl::detail::has_owns< Alloc, std::void_t< decltype(std::declval< Alloc & >().owns(std::declval< void * >()))> >
 
struct  ktl::detail::has_nothrow_allocate< Alloc, bool >
 
struct  ktl::detail::has_nothrow_allocate< Alloc, true >
 
struct  ktl::detail::has_nothrow_allocate< Alloc, false >
 
struct  ktl::detail::has_nothrow_construct< Void, Types >
 
struct  ktl::detail::has_nothrow_construct< std::enable_if_t< has_construct_v< Alloc, Args... > >, Alloc, Args... >
 
struct  ktl::detail::has_nothrow_destroy< Alloc, Ptr, typename >
 
struct  ktl::detail::has_nothrow_destroy< Alloc, Ptr, std::enable_if_t< has_destroy_v< Alloc, Ptr > > >
 
struct  ktl::detail::has_nothrow_max_size< Alloc, typename >
 
struct  ktl::detail::has_nothrow_max_size< Alloc, std::enable_if_t< has_max_size_v< Alloc > > >
 
struct  ktl::detail::has_nothrow_owns< Alloc, typename >
 
struct  ktl::detail::has_nothrow_owns< Alloc, std::enable_if_t< has_owns_v< Alloc > > >
 

Namespaces

namespace  ktl
 
namespace  ktl::detail
 

Typedefs

template<typename Alloc , typename = void>
using ktl::detail::get_size_type_t = typename get_size_type< Alloc, void >::type
 

Functions

template<typename Alloc >
voidktl::detail::allocate (Alloc &alloc, size_t n, const source_location source) noexcept(false)
 

Variables

template<typename Alloc >
constexpr bool ktl::detail::has_no_value_type_v = has_no_value_type<Alloc, void>::value
 
template<typename Alloc >
constexpr bool ktl::detail::has_plain_allocate_v = has_plain_allocate<Alloc>::value
 
template<typename Alloc , typename... Args>
constexpr bool ktl::detail::has_construct_v = has_construct<void, Alloc, Args...>::value
 
template<typename Alloc , typename Ptr >
constexpr bool ktl::detail::has_destroy_v = has_destroy<Alloc, Ptr, void>::value
 
template<typename Alloc >
constexpr bool ktl::detail::has_max_size_v = has_max_size<Alloc, void>::value
 
template<typename Alloc >
constexpr bool ktl::detail::has_owns_v = has_owns<Alloc, void>::value
 
template<typename Alloc >
constexpr bool ktl::detail::has_nothrow_allocate_v = has_nothrow_allocate<Alloc, has_plain_allocate_v<Alloc>>::value
 
template<typename Alloc >
constexpr bool ktl::detail::has_nothrow_deallocate_v = noexcept(std::declval<Alloc&>().deallocate(std::declval<void*>(), std::declval<size_t>()))
 
template<typename T >
constexpr bool ktl::detail::has_nothrow_equal_v = noexcept(std::declval<T&>() == std::declval<T&>())
 
template<typename T >
constexpr bool ktl::detail::has_nothrow_not_equal_v = noexcept(std::declval<T&>() == std::declval<T&>())
 
template<typename Alloc , typename... Args>
constexpr bool ktl::detail::has_nothrow_construct_v = has_nothrow_construct<void, Alloc, Args...>::value
 
template<typename Alloc , typename Ptr >
constexpr bool ktl::detail::has_nothrow_destroy_v = has_nothrow_destroy<Alloc, Ptr, void>::value
 
template<typename Alloc >
constexpr bool ktl::detail::has_nothrow_max_size_v = has_nothrow_max_size<Alloc, void>::value
 
template<typename Alloc >
constexpr bool ktl::detail::has_nothrow_owns_v = has_nothrow_owns<Alloc, void>::value