Skip to content

Latest commit

 

History

History
153 lines (137 loc) · 11 KB

memory.md

File metadata and controls

153 lines (137 loc) · 11 KB

Header <memory> implementation status

Reference
Implementation

  • : Cannot implement with language itself. Need compiler support. Used C++ N STL
  • : Partially implemented with C++ N
  • : Fully implemented with C++ N
  • : Not yet implemented
Features Standard Implemented in
Classes
Pointer traits
pointer_traits
Garbage collector support
pointer_safety Removed in C++23
Allocators
allocator
allocator_traits *
allocation_result
allocator_arg_t
uses_allocator
Uninitialized storage
raw_storage_iterator Removed in C++20
Smart pointers
unique_ptr
shared_ptr
weak_ptr
auto_ptr Removed in C++17
Helper classes
ss::atomic<ss::shared_ptr>
ss::atomic<ss::weak_ptr>
owner_less
enable_shared_from_this
bad_weak_ptr
default_delete
ss::hash<ss::unique_ptr>
ss::hash<ss::shared_ptr>
Smart pointer adaptors
out_ptr_t
inout_ptr_t
Forward declarations
hash (defined in header functional)
inout_ptr_t (defined in header atomic)
Constants
allocator_arg
Functions
Allocators
allocate_at_least
Miscellaneous
to_address
addressof
align
assume_aligned
Garbage collector support
declare_reachable Removed in C++23
undeclare_reachable Removed in C++23
declare_no_pointers Removed in C++23
undeclare_no_pointers Removed in C++23
get_pointer_safety Removed in C++23
Uninitialized storage
uninitialized_copy
uninitialized_copy_n
uninitialized_fill
uninitialized_fill_n
uninitialized_move
uninitialized_move_n
uninitialized_default_construct
uninitialized_default_construct_n
uninitialized_value_construct
uninitialized_value_construct_n
construct_at
destroy_at
destroy
destroy_n
get_temporary_buffer Removed in C++20
return_temporary_buffer Removed in C++20
Smart pointer non-member operations
make_unique
make_unique_for_overwrite

operator==
operator!=
operator<
operator<=
operator>
operator>=
operator<=>

(unique_ptr)
make_shared
make_shared_for_overwrite

allocate_shared
allocate_shared_for_overwrite

static_pointer_cast
dynamic_pointer_cast
const_pointer_cast
reinterpret_pointer_cast


get_deleter
operator==
operator!=
operator<
operator<=
operator>
operator>=
operator<=>

(shared_ptr)
operator<<
ss::swap(ss::unique_ptr)
ss::swap(ss::weak_ptr)
Smart pointer adaptor creation
ss::swap(ss::shared_ptr)
out_ptr
inout_ptr
ss::atomic_...(ss::shared_ptr) Deprecated in C++20
FUnction-like entities Defined in namespace ss::ranges
Uninitialized storage
ranges::uninitialized_copy
ranges::uninitialized_copy_n
ranges::uninitialized_fill
ranges::uninitialized_fill_n
ranges::uninitialized_move
ranges::uninitialized_move_n
ranges::uninitialized_default_construct
ranges::uninitialized_default_construct_n
ranges::uninitialized_value_construct
ranges::uninitialized_value_construct_n
ranges::uninitialized_construct_at
ranges::uninitialized_destroy_at
ranges::uninitialized_destroy
ranges::uninitialized_destroy_n

* Used std::numeric_limits