[libc++] Split __allocator_destructor out of shared_ptr.h

Reviewed By: ldionne, huixie90, #libc

Spies: libcxx-commits

Differential Revision: https://reviews.llvm.org/D134479
This commit is contained in:
Nikolas Klauser 2022-09-22 21:53:13 +02:00
parent 89b356f05a
commit 59ef4b3686
26 changed files with 148 additions and 68 deletions

View File

@ -396,6 +396,7 @@ set(files
__memory/allocation_guard.h
__memory/allocator.h
__memory/allocator_arg_t.h
__memory/allocator_destructor.h
__memory/allocator_traits.h
__memory/assume_aligned.h
__memory/auto_ptr.h

View File

@ -18,10 +18,10 @@
#include <__iterator/iterator_traits.h>
#include <__memory/addressof.h>
#include <__memory/allocator.h>
#include <__memory/allocator_destructor.h>
#include <__memory/allocator_traits.h>
#include <__memory/builtin_new_allocator.h>
#include <__memory/compressed_pair.h>
#include <__memory/shared_ptr.h>
#include <__memory/unique_ptr.h>
#include <__utility/forward.h>
#include <__utility/move.h>

View File

@ -12,16 +12,18 @@
#include <__availability>
#include <__config>
#include <__memory/shared_ptr.h>
#include <cctype>
#include <cstdint>
#include <locale.h>
#include <mutex>
#include <string>
// Some platforms require more includes than others. Keep the includes on all plaforms for now.
#include <cstddef>
#include <cstring>
#if defined(_LIBCPP_MSVCRT_LIKE)
# include <__support/win32/locale_win32.h>
# include <cstring>
#elif defined(_AIX) || defined(__MVS__)
# include <__support/ibm/xlocale.h>
#elif defined(__ANDROID__)

View File

@ -0,0 +1,42 @@
//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef _LIBCPP___MEMORY_ALLOCATOR_DESTRUCTOR_H
#define _LIBCPP___MEMORY_ALLOCATOR_DESTRUCTOR_H
#include <__config>
#include <__memory/allocator_traits.h>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif
_LIBCPP_BEGIN_NAMESPACE_STD
template <class _Alloc>
class __allocator_destructor
{
typedef _LIBCPP_NODEBUG allocator_traits<_Alloc> __alloc_traits;
public:
typedef _LIBCPP_NODEBUG typename __alloc_traits::pointer pointer;
typedef _LIBCPP_NODEBUG typename __alloc_traits::size_type size_type;
private:
_Alloc& __alloc_;
size_type __s_;
public:
_LIBCPP_INLINE_VISIBILITY __allocator_destructor(_Alloc& __a, size_type __s)
_NOEXCEPT
: __alloc_(__a), __s_(__s) {}
_LIBCPP_INLINE_VISIBILITY
void operator()(pointer __p) _NOEXCEPT
{__alloc_traits::deallocate(__alloc_, __p, __s_);}
};
_LIBCPP_END_NAMESPACE_STD
#endif // _LIBCPP___MEMORY_ALLOCATOR_DESTRUCTOR_H

View File

@ -21,6 +21,7 @@
#include <__memory/addressof.h>
#include <__memory/allocation_guard.h>
#include <__memory/allocator.h>
#include <__memory/allocator_destructor.h>
#include <__memory/allocator_traits.h>
#include <__memory/auto_ptr.h>
#include <__memory/compressed_pair.h>
@ -42,32 +43,12 @@
# include <atomic>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif
_LIBCPP_BEGIN_NAMESPACE_STD
template <class _Alloc>
class __allocator_destructor
{
typedef _LIBCPP_NODEBUG allocator_traits<_Alloc> __alloc_traits;
public:
typedef _LIBCPP_NODEBUG typename __alloc_traits::pointer pointer;
typedef _LIBCPP_NODEBUG typename __alloc_traits::size_type size_type;
private:
_Alloc& __alloc_;
size_type __s_;
public:
_LIBCPP_INLINE_VISIBILITY __allocator_destructor(_Alloc& __a, size_type __s)
_NOEXCEPT
: __alloc_(__a), __s_(__s) {}
_LIBCPP_INLINE_VISIBILITY
void operator()(pointer __p) _NOEXCEPT
{__alloc_traits::deallocate(__alloc_, __p, __s_);}
};
// NOTE: Relaxed and acq/rel atomics (for increment and decrement respectively)
// should be sufficient for thread safety.
// See https://llvm.org/PR22803

View File

@ -22,7 +22,6 @@
#include <__memory/allocator_traits.h>
#include <__memory/compressed_pair.h>
#include <__memory/pointer_traits.h>
#include <__memory/shared_ptr.h>
#include <__memory/swap_allocator.h>
#include <__utility/forward.h>
#include <__utility/move.h>

View File

@ -84,8 +84,8 @@ namespace std {
#include <__availability>
#include <__config>
#include <__memory/allocator.h>
#include <__memory/allocator_destructor.h>
#include <__memory/allocator_traits.h>
#include <__memory/shared_ptr.h>
#include <__memory/unique_ptr.h>
#include <__utility/forward.h>
#include <__utility/in_place.h>
@ -699,7 +699,9 @@ _LIBCPP_END_NAMESPACE_STD
#endif
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <atomic>
# include <concepts>
# include <iosfwd>
# include <iterator>
# include <memory>
# include <variant>

View File

@ -554,7 +554,18 @@ _LIBCPP_SUPPRESS_DEPRECATED_POP
_LIBCPP_END_NAMESPACE_STD
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <atomic>
# include <concepts>
# include <cstddef>
# include <cstdlib>
# include <cstring>
# include <initializer_list>
# include <iosfwd>
# include <limits>
# include <new>
# include <stdexcept>
# include <type_traits>
# include <typeinfo>
#endif
#endif // _LIBCPP_CODECVT

View File

@ -176,6 +176,7 @@ template <class T, class Allocator, class Predicate>
#include <__iterator/next.h>
#include <__iterator/prev.h>
#include <__iterator/reverse_iterator.h>
#include <__memory/allocator_destructor.h>
#include <__memory/pointer_traits.h>
#include <__memory/temp_value.h>
#include <__memory/unique_ptr.h>
@ -2943,9 +2944,12 @@ _LIBCPP_POP_MACROS
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <atomic>
# include <concepts>
# include <functional>
# include <iosfwd>
# include <iterator>
# include <typeinfo>
#endif
#endif // _LIBCPP_DEQUE

View File

@ -190,10 +190,10 @@ template <class T, class Allocator, class Predicate>
#include <__iterator/next.h>
#include <__memory/addressof.h>
#include <__memory/allocator.h>
#include <__memory/allocator_destructor.h>
#include <__memory/allocator_traits.h>
#include <__memory/compressed_pair.h>
#include <__memory/pointer_traits.h>
#include <__memory/shared_ptr.h>
#include <__memory/swap_allocator.h>
#include <__memory/unique_ptr.h>
#include <__memory_resource/polymorphic_allocator.h>
@ -1792,9 +1792,12 @@ _LIBCPP_POP_MACROS
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <atomic>
# include <concepts>
# include <functional>
# include <iosfwd>
# include <iterator>
# include <typeinfo>
#endif
#endif // _LIBCPP_FORWARD_LIST

View File

@ -1745,7 +1745,12 @@ _LIBCPP_END_NAMESPACE_STD
_LIBCPP_POP_MACROS
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <atomic>
# include <concepts>
# include <iosfwd>
# include <limits>
# include <new>
# include <stdexcept>
#endif
#endif // _LIBCPP_FSTREAM

View File

@ -367,6 +367,7 @@ template <class R, class Alloc> struct uses_allocator<packaged_task<R>, Alloc>;
#include <__chrono/time_point.h>
#include <__config>
#include <__memory/allocator_arg_t.h>
#include <__memory/allocator_destructor.h>
#include <__memory/uses_allocator.h>
#include <__utility/auto_cast.h>
#include <__utility/forward.h>

View File

@ -1040,6 +1040,15 @@ _LIBCPP_END_NAMESPACE_STD
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <concepts>
# include <cstddef>
# include <cstdlib>
# include <cstring>
# include <initializer_list>
# include <limits>
# include <new>
# include <stdexcept>
# include <type_traits>
# include <typeinfo>
#endif
#endif // _LIBCPP_IOS

View File

@ -196,10 +196,10 @@ template <class T, class Allocator, class Predicate>
#include <__iterator/reverse_iterator.h>
#include <__memory/addressof.h>
#include <__memory/allocator.h>
#include <__memory/allocator_destructor.h>
#include <__memory/allocator_traits.h>
#include <__memory/compressed_pair.h>
#include <__memory/pointer_traits.h>
#include <__memory/shared_ptr.h>
#include <__memory/swap_allocator.h>
#include <__memory/unique_ptr.h>
#include <__memory_resource/polymorphic_allocator.h>
@ -2375,9 +2375,12 @@ _LIBCPP_POP_MACROS
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <atomic>
# include <concepts>
# include <functional>
# include <iosfwd>
# include <iterator>
# include <typeinfo>
#endif
#endif // _LIBCPP_LIST

View File

@ -4353,9 +4353,12 @@ _LIBCPP_END_NAMESPACE_STD
_LIBCPP_POP_MACROS
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <atomic>
# include <concepts>
# include <cstdarg>
# include <iterator>
# include <stdexcept>
# include <typeinfo>
#endif
#endif // _LIBCPP_LOCALE

View File

@ -1031,6 +1031,7 @@ module std [system] {
module allocation_guard { private header "__memory/allocation_guard.h" }
module allocator { private header "__memory/allocator.h" }
module allocator_arg_t { private header "__memory/allocator_arg_t.h" }
module allocator_destructor { private header "__memory/allocator_destructor.h" }
module allocator_traits { private header "__memory/allocator_traits.h" }
module assume_aligned { private header "__memory/assume_aligned.h" }
module auto_ptr { private header "__memory/auto_ptr.h" }

View File

@ -165,6 +165,7 @@ basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, cons
#include <__assert> // all public C++ headers provide the assertion handler
#include <__config>
#include <__memory/shared_ptr.h>
#include <__memory/unique_ptr.h>
#include <bitset>
#include <ios>
@ -1188,6 +1189,7 @@ extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_ostream<wchar_t>;
_LIBCPP_END_NAMESPACE_STD
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <concepts>
# include <iterator>
#endif

View File

@ -773,6 +773,7 @@ typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;
#include <__utility/move.h>
#include <__utility/pair.h>
#include <__utility/swap.h>
#include <cstring>
#include <deque>
#include <stdexcept>
#include <string>
@ -6858,8 +6859,12 @@ _LIBCPP_END_NAMESPACE_STD
_LIBCPP_POP_MACROS
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <atomic>
# include <concepts>
# include <iosfwd>
# include <iterator>
# include <new>
# include <typeinfo>
# include <utility>
#endif

View File

@ -3281,6 +3281,7 @@ _LIBCPP_POP_MACROS
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <atomic>
# include <concepts>
# include <typeinfo>
# include <utility>

View File

@ -427,6 +427,7 @@ END-SCRIPT
#include <__memory/allocation_guard.h> // expected-error@*:* {{use of private header from outside its module: '__memory/allocation_guard.h'}}
#include <__memory/allocator.h> // expected-error@*:* {{use of private header from outside its module: '__memory/allocator.h'}}
#include <__memory/allocator_arg_t.h> // expected-error@*:* {{use of private header from outside its module: '__memory/allocator_arg_t.h'}}
#include <__memory/allocator_destructor.h> // expected-error@*:* {{use of private header from outside its module: '__memory/allocator_destructor.h'}}
#include <__memory/allocator_traits.h> // expected-error@*:* {{use of private header from outside its module: '__memory/allocator_traits.h'}}
#include <__memory/assume_aligned.h> // expected-error@*:* {{use of private header from outside its module: '__memory/assume_aligned.h'}}
#include <__memory/auto_ptr.h> // expected-error@*:* {{use of private header from outside its module: '__memory/auto_ptr.h'}}

View File

@ -107,6 +107,7 @@ charconv iosfwd
charconv limits
charconv type_traits
chrono compare
chrono concepts
chrono cstdint
chrono ctime
chrono limits
@ -610,17 +611,24 @@ optional typeinfo
optional utility
optional variant
optional version
ostream atomic
ostream bitset
ostream concepts
ostream cstddef
ostream cstdint
ostream cstdlib
ostream cstring
ostream initializer_list
ostream ios
ostream iosfwd
ostream iterator
ostream limits
ostream locale
ostream new
ostream stdexcept
ostream streambuf
ostream type_traits
ostream typeinfo
ostream version
queue compare
queue concepts

1 algorithm atomic
107 charconv limits
108 charconv type_traits
109 chrono compare
110 chrono concepts
111 chrono cstdint
112 chrono ctime
113 chrono limits
611 optional utility
612 optional variant
613 optional version
614 ostream atomic
615 ostream bitset
616 ostream concepts
617 ostream cstddef
618 ostream cstdint
619 ostream cstdlib
620 ostream cstring
621 ostream initializer_list
622 ostream ios
623 ostream iosfwd
624 ostream iterator
625 ostream limits
626 ostream locale
627 ostream new
628 ostream stdexcept
629 ostream streambuf
630 ostream type_traits
631 ostream typeinfo
632 ostream version
633 queue compare
634 queue concepts

View File

@ -107,6 +107,7 @@ charconv iosfwd
charconv limits
charconv type_traits
chrono compare
chrono concepts
chrono cstdint
chrono ctime
chrono limits
@ -611,17 +612,24 @@ optional typeinfo
optional utility
optional variant
optional version
ostream atomic
ostream bitset
ostream concepts
ostream cstddef
ostream cstdint
ostream cstdlib
ostream cstring
ostream initializer_list
ostream ios
ostream iosfwd
ostream iterator
ostream limits
ostream locale
ostream new
ostream stdexcept
ostream streambuf
ostream type_traits
ostream typeinfo
ostream version
queue compare
queue concepts

1 algorithm atomic
107 charconv limits
108 charconv type_traits
109 chrono compare
110 chrono concepts
111 chrono cstdint
112 chrono ctime
113 chrono limits
612 optional utility
613 optional variant
614 optional version
615 ostream atomic
616 ostream bitset
617 ostream concepts
618 ostream cstddef
619 ostream cstdint
620 ostream cstdlib
621 ostream cstring
622 ostream initializer_list
623 ostream ios
624 ostream iosfwd
625 ostream iterator
626 ostream limits
627 ostream locale
628 ostream new
629 ostream stdexcept
630 ostream streambuf
631 ostream type_traits
632 ostream typeinfo
633 ostream version
634 queue compare
635 queue concepts

View File

@ -107,6 +107,7 @@ charconv iosfwd
charconv limits
charconv type_traits
chrono compare
chrono concepts
chrono cstdint
chrono ctime
chrono limits
@ -613,17 +614,24 @@ optional typeinfo
optional utility
optional variant
optional version
ostream atomic
ostream bitset
ostream concepts
ostream cstddef
ostream cstdint
ostream cstdlib
ostream cstring
ostream initializer_list
ostream ios
ostream iosfwd
ostream iterator
ostream limits
ostream locale
ostream new
ostream stdexcept
ostream streambuf
ostream type_traits
ostream typeinfo
ostream version
queue compare
queue concepts

1 algorithm atomic
107 charconv limits
108 charconv type_traits
109 chrono compare
110 chrono concepts
111 chrono cstdint
112 chrono ctime
113 chrono limits
614 optional utility
615 optional variant
616 optional version
617 ostream atomic
618 ostream bitset
619 ostream concepts
620 ostream cstddef
621 ostream cstdint
622 ostream cstdlib
623 ostream cstring
624 ostream initializer_list
625 ostream ios
626 ostream iosfwd
627 ostream iterator
628 ostream limits
629 ostream locale
630 ostream new
631 ostream stdexcept
632 ostream streambuf
633 ostream type_traits
634 ostream typeinfo
635 ostream version
636 queue compare
637 queue concepts

View File

@ -107,6 +107,7 @@ charconv iosfwd
charconv limits
charconv type_traits
chrono compare
chrono concepts
chrono cstdint
chrono ctime
chrono limits
@ -613,17 +614,24 @@ optional typeinfo
optional utility
optional variant
optional version
ostream atomic
ostream bitset
ostream concepts
ostream cstddef
ostream cstdint
ostream cstdlib
ostream cstring
ostream initializer_list
ostream ios
ostream iosfwd
ostream iterator
ostream limits
ostream locale
ostream new
ostream stdexcept
ostream streambuf
ostream type_traits
ostream typeinfo
ostream version
queue compare
queue concepts

1 algorithm atomic
107 charconv limits
108 charconv type_traits
109 chrono compare
110 chrono concepts
111 chrono cstdint
112 chrono ctime
113 chrono limits
614 optional utility
615 optional variant
616 optional version
617 ostream atomic
618 ostream bitset
619 ostream concepts
620 ostream cstddef
621 ostream cstdint
622 ostream cstdlib
623 ostream cstring
624 ostream initializer_list
625 ostream ios
626 ostream iosfwd
627 ostream iterator
628 ostream limits
629 ostream locale
630 ostream new
631 ostream stdexcept
632 ostream streambuf
633 ostream type_traits
634 ostream typeinfo
635 ostream version
636 queue compare
637 queue concepts

View File

@ -623,17 +623,24 @@ optional typeinfo
optional utility
optional variant
optional version
ostream atomic
ostream bitset
ostream concepts
ostream cstddef
ostream cstdint
ostream cstdlib
ostream cstring
ostream initializer_list
ostream ios
ostream iosfwd
ostream iterator
ostream limits
ostream locale
ostream new
ostream stdexcept
ostream streambuf
ostream type_traits
ostream typeinfo
ostream version
queue compare
queue concepts

1 algorithm atomic
623 optional utility
624 optional variant
625 optional version
626 ostream atomic
627 ostream bitset
628 ostream concepts
629 ostream cstddef
630 ostream cstdint
631 ostream cstdlib
632 ostream cstring
633 ostream initializer_list
634 ostream ios
635 ostream iosfwd
636 ostream iterator
637 ostream limits
638 ostream locale
639 ostream new
640 ostream stdexcept
641 ostream streambuf
642 ostream type_traits
643 ostream typeinfo
644 ostream version
645 queue compare
646 queue concepts

View File

@ -10,13 +10,11 @@ algorithm limits
algorithm new
algorithm type_traits
algorithm version
any atomic
any cstddef
any cstdint
any cstdlib
any cstring
any initializer_list
any iosfwd
any limits
any new
any stdexcept
@ -103,21 +101,12 @@ chrono version
cinttypes cstdint
cmath type_traits
cmath version
codecvt atomic
codecvt cctype
codecvt cstddef
codecvt cstdint
codecvt cstdlib
codecvt cstring
codecvt initializer_list
codecvt iosfwd
codecvt limits
codecvt mutex
codecvt new
codecvt stdexcept
codecvt string
codecvt type_traits
codecvt typeinfo
codecvt version
compare cmath
compare cstddef
@ -161,20 +150,17 @@ ctgmath ccomplex
ctgmath cmath
cwchar cwctype
cwctype cctype
deque atomic
deque compare
deque cstddef
deque cstdint
deque cstdlib
deque cstring
deque initializer_list
deque iosfwd
deque limits
deque new
deque stdexcept
deque tuple
deque type_traits
deque typeinfo
deque version
exception cstddef
exception cstdlib
@ -293,22 +279,18 @@ format string
format string_view
format type_traits
format version
forward_list atomic
forward_list compare
forward_list cstddef
forward_list cstdint
forward_list cstdlib
forward_list cstring
forward_list initializer_list
forward_list iosfwd
forward_list limits
forward_list new
forward_list stdexcept
forward_list tuple
forward_list type_traits
forward_list typeinfo
forward_list version
fstream atomic
fstream cctype
fstream cstddef
fstream cstdint
@ -317,13 +299,9 @@ fstream cstdlib
fstream cstring
fstream filesystem
fstream initializer_list
fstream iosfwd
fstream istream
fstream limits
fstream mutex
fstream new
fstream ostream
fstream stdexcept
fstream string
fstream type_traits
fstream typeinfo
@ -364,18 +342,11 @@ ios atomic
ios cctype
ios cstddef
ios cstdint
ios cstdlib
ios cstring
ios initializer_list
ios iosfwd
ios limits
ios mutex
ios new
ios stdexcept
ios string
ios system_error
ios type_traits
ios typeinfo
ios version
iosfwd version
iostream ios
@ -403,22 +374,18 @@ latch limits
latch version
limits type_traits
limits version
list atomic
list compare
list cstddef
list cstdint
list cstdlib
list cstring
list initializer_list
list iosfwd
list limits
list new
list stdexcept
list tuple
list type_traits
list typeinfo
list version
locale atomic
locale cctype
locale cstddef
locale cstdint
@ -432,11 +399,9 @@ locale iosfwd
locale limits
locale mutex
locale new
locale stdexcept
locale streambuf
locale string
locale type_traits
locale typeinfo
locale version
map compare
map cstddef
@ -510,16 +475,22 @@ optional new
optional stdexcept
optional type_traits
optional version
ostream atomic
ostream bitset
ostream cstddef
ostream cstdint
ostream cstdlib
ostream cstring
ostream initializer_list
ostream ios
ostream iosfwd
ostream limits
ostream locale
ostream new
ostream stdexcept
ostream streambuf
ostream type_traits
ostream typeinfo
ostream version
queue compare
queue cstddef
@ -562,7 +533,6 @@ ratio climits
ratio cstdint
ratio type_traits
ratio version
regex atomic
regex cctype
regex compare
regex cstddef
@ -571,14 +541,11 @@ regex cstdlib
regex cstring
regex deque
regex initializer_list
regex iosfwd
regex limits
regex mutex
regex new
regex stdexcept
regex string
regex type_traits
regex typeinfo
regex vector
regex version
scoped_allocator cstddef
@ -764,7 +731,6 @@ variant new
variant tuple
variant type_traits
variant version
vector atomic
vector climits
vector compare
vector cstddef
@ -778,5 +744,4 @@ vector new
vector stdexcept
vector tuple
vector type_traits
vector typeinfo
vector version

1 algorithm bit
10 algorithm new
11 algorithm type_traits
12 algorithm version
any atomic
13 any cstddef
14 any cstdint
15 any cstdlib
16 any cstring
17 any initializer_list
any iosfwd
18 any limits
19 any new
20 any stdexcept
101 cinttypes cstdint
102 cmath type_traits
103 cmath version
codecvt atomic
104 codecvt cctype
105 codecvt cstddef
106 codecvt cstdint
codecvt cstdlib
107 codecvt cstring
codecvt initializer_list
codecvt iosfwd
codecvt limits
108 codecvt mutex
codecvt new
codecvt stdexcept
109 codecvt string
codecvt type_traits
codecvt typeinfo
110 codecvt version
111 compare cmath
112 compare cstddef
150 ctgmath cmath
151 cwchar cwctype
152 cwctype cctype
deque atomic
153 deque compare
154 deque cstddef
155 deque cstdint
156 deque cstdlib
157 deque cstring
158 deque initializer_list
deque iosfwd
159 deque limits
160 deque new
161 deque stdexcept
162 deque tuple
163 deque type_traits
deque typeinfo
164 deque version
165 exception cstddef
166 exception cstdlib
279 format string_view
280 format type_traits
281 format version
forward_list atomic
282 forward_list compare
283 forward_list cstddef
284 forward_list cstdint
285 forward_list cstdlib
286 forward_list cstring
287 forward_list initializer_list
forward_list iosfwd
288 forward_list limits
289 forward_list new
290 forward_list stdexcept
291 forward_list tuple
292 forward_list type_traits
forward_list typeinfo
293 forward_list version
fstream atomic
294 fstream cctype
295 fstream cstddef
296 fstream cstdint
299 fstream cstring
300 fstream filesystem
301 fstream initializer_list
fstream iosfwd
302 fstream istream
fstream limits
303 fstream mutex
fstream new
304 fstream ostream
fstream stdexcept
305 fstream string
306 fstream type_traits
307 fstream typeinfo
342 ios cctype
343 ios cstddef
344 ios cstdint
ios cstdlib
345 ios cstring
ios initializer_list
346 ios iosfwd
ios limits
347 ios mutex
ios new
ios stdexcept
348 ios string
349 ios system_error
ios type_traits
ios typeinfo
350 ios version
351 iosfwd version
352 iostream ios
374 latch version
375 limits type_traits
376 limits version
list atomic
377 list compare
378 list cstddef
379 list cstdint
380 list cstdlib
381 list cstring
382 list initializer_list
list iosfwd
383 list limits
384 list new
385 list stdexcept
386 list tuple
387 list type_traits
list typeinfo
388 list version
locale atomic
389 locale cctype
390 locale cstddef
391 locale cstdint
399 locale limits
400 locale mutex
401 locale new
locale stdexcept
402 locale streambuf
403 locale string
404 locale type_traits
locale typeinfo
405 locale version
406 map compare
407 map cstddef
475 optional stdexcept
476 optional type_traits
477 optional version
478 ostream atomic
479 ostream bitset
480 ostream cstddef
481 ostream cstdint
482 ostream cstdlib
483 ostream cstring
484 ostream initializer_list
485 ostream ios
486 ostream iosfwd
487 ostream limits
488 ostream locale
489 ostream new
490 ostream stdexcept
491 ostream streambuf
492 ostream type_traits
493 ostream typeinfo
494 ostream version
495 queue compare
496 queue cstddef
533 ratio cstdint
534 ratio type_traits
535 ratio version
regex atomic
536 regex cctype
537 regex compare
538 regex cstddef
541 regex cstring
542 regex deque
543 regex initializer_list
regex iosfwd
544 regex limits
545 regex mutex
regex new
546 regex stdexcept
547 regex string
548 regex type_traits
regex typeinfo
549 regex vector
550 regex version
551 scoped_allocator cstddef
731 variant tuple
732 variant type_traits
733 variant version
vector atomic
734 vector climits
735 vector compare
736 vector cstddef
744 vector stdexcept
745 vector tuple
746 vector type_traits
vector typeinfo
747 vector version