brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · e138291 Raw
82 lines · plain
1// -*- C++ -*-2//===----------------------------------------------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCPP_MEMORY_RESOURCE11#define _LIBCPP_MEMORY_RESOURCE12 13/**14    memory_resource synopsis15 16// C++1717 18namespace std::pmr {19 20  class memory_resource;21 22  bool operator==(const memory_resource& a,23                  const memory_resource& b) noexcept;24  bool operator!=(const memory_resource& a,25                  const memory_resource& b) noexcept;           // removed in C++2026 27  template <class Tp> class polymorphic_allocator;28 29  template <class T1, class T2>30  bool operator==(const polymorphic_allocator<T1>& a,31                  const polymorphic_allocator<T2>& b) noexcept;32  template <class T1, class T2>33  bool operator!=(const polymorphic_allocator<T1>& a,34                  const polymorphic_allocator<T2>& b) noexcept; // removed in C++2035 36  // Global memory resources37  memory_resource* set_default_resource(memory_resource* r) noexcept;38  memory_resource* get_default_resource() noexcept;39  memory_resource* new_delete_resource() noexcept;40  memory_resource* null_memory_resource() noexcept;41 42  // Pool resource classes43  struct pool_options;44  class synchronized_pool_resource;45  class unsynchronized_pool_resource;46  class monotonic_buffer_resource;47 48} // namespace std::pmr49 50 */51 52#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)53#  include <__cxx03/__config>54#else55#  include <__config>56 57#  if _LIBCPP_STD_VER >= 1758#    include <__memory_resource/memory_resource.h>59#    include <__memory_resource/monotonic_buffer_resource.h>60#    include <__memory_resource/polymorphic_allocator.h>61#    include <__memory_resource/pool_options.h>62#    include <__memory_resource/synchronized_pool_resource.h>63#    include <__memory_resource/unsynchronized_pool_resource.h>64#  endif65 66#  include <version>67 68#  if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)69#    pragma GCC system_header70#  endif71 72#  if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER >= 17 && _LIBCPP_STD_VER <= 2073#    include <mutex>74#  endif75 76#  if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 2077#    include <stdexcept>78#  endif79#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)80 81#endif /* _LIBCPP_MEMORY_RESOURCE */82