You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
861 B
C++

// -*- c++ -*-
#pragma once
#include <cstdlib>
#include <limits>
#include <new>
#include <xutility>
#define allocator_traits allocator_traits_base
#include_next <xmemory0>
#undef allocator_traits
namespace std
{
namespace Detail
{
template <typename T, typename = void>
struct get_is_always_equal : std::is_empty<T> {};
template <typename T>
struct get_is_always_equal<T, std::void_t<typename T::is_always_equal>>
: T::is_always_equal {};
}
template <typename T>
struct allocator_traits : allocator_traits_base<T>
{
using is_always_equal = typename Detail::get_is_always_equal<T>::type;
template <typename U>
using rebind_traits = allocator_traits<
typename allocator_traits_base<T>::template rebind_alloc<U>>;
// is this some kind of msvc extension??
using other = allocator_traits<T>;
};
}