[libc++] Re-add transitive includes that had been removed since LLVM 14

This commit re-adds transitive includes that had been removed by
4cd04d1687, c36870c8e7, a83f4b9cda, 1458458b55, 2e2f3158c6,
and 489637e66d. This should cover almost all the includes that had
been removed since LLVM 14 and that would contribute to breaking user
code when releasing LLVM 15.

It is possible to disable the inclusion of these headers by defining
_LIBCPP_REMOVE_TRANSITIVE_INCLUDES. The intent is that vendors will
enable that macro and start fixing downstream issues immediately. We
can then remove the macro (and the transitive includes) by default in
a future release. That way, we will break users only once by removing
transitive includes in bulk instead of doing it bit by bit a every
release, which is more disruptive for users.

Note 1: The set of headers to re-add was found by re-generating the
        transitive include test on a checkout of release/14.x, which
        provided the list of all transitive includes we used to provide.

Note 2: Several includes of <vector>, <optional>, <array> and <unordered_map>
        have been added in this commit. These transitive inclusions were
        added when we implemented boyer_moore_searcher in <functional>.

Note 3: This is a best effort patch to try and resolve downstream breakage
        caused since branching LLVM 14. I wasn't able to perfectly mirror
        transitive includes in LLVM 14 for a few headers, so I added a
        release note explaining it. To summarize, adding boyer_moore_searcher
        created a bunch of circular dependencies, so we have to break
        backwards compatibility in a few cases.

Differential Revision: https://reviews.llvm.org/D128661
This commit is contained in:
Louis Dionne 2022-06-27 15:53:41 -04:00
parent ea1b861278
commit de4a57cb21
126 changed files with 954 additions and 13 deletions

View File

@ -0,0 +1,2 @@
set(LIBCXX_TEST_PARAMS "enable_transitive_includes=False" CACHE STRING "")
set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "")

View File

@ -97,19 +97,15 @@ API Changes
``<filesystem>`` header. The associated macro
``_LIBCPP_DEPRECATED_EXPERIMENTAL_FILESYSTEM`` has also been removed.
- Some libc++ headers no longer transitively include all of:
- ``<algorithm>``
- ``<chrono>``
- ``<exception>``
- ``<functional>``
- ``<iterator>``
- ``<new>``
- ``<typeinfo>``
- ``<utility>``
- Libc++ is getting ready to remove unnecessary transitive inclusions. This may
break your code in the future. To future-proof your code to these removals,
please compile your code with ``_LIBCPP_REMOVE_TRANSITIVE_INCLUDES`` defined
and fix any compilation error resulting from missing includes.
If, after updating libc++, you see compiler errors related to missing declarations
in namespace ``std``, it might be because one of your source files now needs to
include one or more of the headers listed above.
- The ``<algorithm>``, ``<array>``, ``<optional>``, ``<unordered_map>`` and ``<vector>``
headers no longer transitively include the ``<functional>`` header. If you see compiler
errors related to missing declarations in namespace ``std``, make sure you have the
necessary includes.
- The integer distributions ``binomial_distribution``, ``discrete_distribution``,
``geometric_distribution``, ``negative_binomial_distribution``, ``poisson_distribution``,

View File

@ -1260,6 +1260,12 @@ template <class BidirectionalIterator, class Compare>
#include <__algorithm/unwrap_iter.h>
#include <__algorithm/upper_bound.h>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <chrono>
# include <iterator>
# include <utility>
#endif
// standard-mandated includes
#include <initializer_list>

View File

@ -94,6 +94,10 @@ namespace std {
#include <typeinfo>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <chrono>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -123,6 +123,12 @@ template <size_t I, class T, size_t N> const T&& get(const array<T, N>&&) noexce
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <algorithm>
# include <iterator>
# include <utility>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -534,6 +534,10 @@ template <class T>
# include <__threading_support>
#endif
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <chrono>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -71,6 +71,10 @@ namespace std {
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <iosfwd>
#endif
#if defined(__IBMCPP__)
# include "__support/ibm/support.h"
#endif

View File

@ -96,6 +96,10 @@ namespace std {
#include <limits>
#include <type_traits>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <iosfwd>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -46,6 +46,10 @@ struct suspend_always;
#include <__coroutine/trivial_awaitables.h>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <iosfwd>
#endif
// standard-mandated includes
#include <compare>

View File

@ -185,6 +185,12 @@ template <class T, class Allocator, class Predicate>
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <algorithm>
# include <functional>
# include <iterator>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -656,6 +656,11 @@ public:
#include <experimental/__config>
#include <tuple>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <algorithm>
# include <functional>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -45,6 +45,14 @@ namespace pmr {
#include <experimental/memory_resource>
#include <unordered_map>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <algorithm>
# include <array>
# include <bit>
# include <functional>
# include <vector>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -210,6 +210,10 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
#include <stdexcept>
#include <type_traits>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <iterator>
#endif
#if defined(__DEPRECATED) && __DEPRECATED
#if defined(_LIBCPP_WARNING)
_LIBCPP_WARNING("Use of the header <ext/hash_map> is deprecated. Migrate to <unordered_map>")

View File

@ -199,6 +199,10 @@ template <class Value, class Hash, class Pred, class Alloc>
#include <ext/__hash>
#include <functional>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <iterator>
#endif
#if defined(__DEPRECATED) && __DEPRECATED
#if defined(_LIBCPP_WARNING)
_LIBCPP_WARNING("Use of the header <ext/hash_set> is deprecated. Migrate to <unordered_set>")

View File

@ -194,6 +194,12 @@ template <class T, class Allocator, class Predicate>
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <algorithm>
# include <functional>
# include <iterator>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -529,6 +529,10 @@ POLICY: For non-variadic implementations, the number of arguments is limited
#include <typeinfo>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <utility>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -378,6 +378,10 @@ template <class R, class Alloc> struct uses_allocator<packaged_task<R>, Alloc>;
#include <thread>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <chrono>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -724,6 +724,13 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <exception>
# include <new>
# include <typeinfo>
# include <utility>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -202,6 +202,12 @@ template <class T, class Allocator, class Predicate>
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <algorithm>
# include <functional>
# include <iterator>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -211,6 +211,10 @@ template <class charT> class messages_byname;
#include <streambuf>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <iterator>
#endif
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
// Most unix variants have catopen. These are the specific ones that don't.
# if !defined(__BIONIC__) && !defined(_NEWLIB_VERSION) && !defined(__EMSCRIPTEN__)

View File

@ -546,6 +546,12 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred); // C++20
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <functional>
# include <iterator>
# include <utility>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -871,6 +871,11 @@ template<size_t N, class T>
#include <typeinfo>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <iterator>
# include <utility>
#endif
// standard-mandated includes
#include <compare>

View File

@ -198,6 +198,10 @@ template<class Callable, class ...Args>
#endif
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <functional>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -163,6 +163,11 @@ template<class T>
#include <__numeric/transform_inclusive_scan.h>
#include <__numeric/transform_reduce.h>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <functional>
# include <iterator>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -177,6 +177,21 @@ template<class T>
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <atomic>
# include <chrono>
# include <climits>
# include <concepts>
# include <ctime>
# include <iterator>
# include <memory>
# include <ratio>
# include <tuple>
# include <typeinfo>
# include <utility>
# include <variant>
#endif
// standard-mandated includes
#include <compare>

View File

@ -142,6 +142,10 @@ template <class Stream, class T>
#include <streambuf>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <iterator>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -231,6 +231,10 @@ template <class T, class Container, class Compare>
#include <vector>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <functional>
#endif
// standard-mandated includes
#include <compare>
#include <initializer_list>

View File

@ -1718,6 +1718,10 @@ class piecewise_linear_distribution
#include <__random/weibull_distribution.h>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <algorithm>
#endif
// standard-mandated includes
#include <initializer_list>

View File

@ -778,6 +778,11 @@ typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;
#include <vector>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <iterator>
# include <utility>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -485,6 +485,11 @@ erase_if(multiset<Key, Compare, Allocator>& c, Predicate pred); // C++20
#include <__utility/forward.h>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <functional>
# include <iterator>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -148,6 +148,11 @@ template<class R>
#include <type_traits> // for remove_cv, etc
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <functional>
# include <iterator>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -107,6 +107,10 @@ template <class T, class Container>
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <functional>
#endif
// standard-mandated includes
#include <compare>
#include <initializer_list>

View File

@ -555,6 +555,16 @@ basic_string<char32_t> operator "" s( const char32_t *str, size_t len );
# include <cwchar>
#endif
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <algorithm>
# include <functional>
# include <iterator>
# include <new>
# include <typeinfo>
# include <utility>
# include <vector>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -218,6 +218,12 @@ namespace std {
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <algorithm>
# include <functional>
# include <iterator>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -98,6 +98,11 @@ void sleep_for(const chrono::duration<Rep, Period>& rel_time);
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <chrono>
# include <functional>
#endif
// standard-mandated includes
#include <compare>

View File

@ -219,6 +219,14 @@ template <class... Types>
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <exception>
# include <iosfwd>
# include <new>
# include <typeinfo>
# include <utility>
#endif
// standard-mandated includes
#include <compare>

View File

@ -50,6 +50,12 @@ struct hash<type_index>
#include <typeinfo>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <iosfwd>
# include <new>
# include <utility>
#endif
// standard-mandated includes
#include <compare>

View File

@ -531,6 +531,12 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
#include <tuple>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <algorithm>
# include <bit>
# include <iterator>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -474,6 +474,11 @@ template <class Value, class Hash, class Pred, class Alloc>
#include <__utility/forward.h>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <functional>
# include <iterator>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -243,6 +243,10 @@ template <class T>
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <iosfwd>
#endif
// standard-mandated includes
#include <compare>
#include <initializer_list>

View File

@ -360,6 +360,11 @@ template <class T> unspecified2 end(const valarray<T>& v);
#include <new>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <algorithm>
# include <functional>
#endif
// standard-mandated includes
#include <initializer_list>

View File

@ -219,6 +219,11 @@ namespace std {
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <typeinfo>
# include <utility>
#endif
// standard-mandated includes
#include <compare>

View File

@ -305,6 +305,12 @@ erase_if(vector<T, Allocator>& c, Predicate pred); // C++20
#include <type_traits>
#include <version>
#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
# include <algorithm>
# include <typeinfo>
# include <utility>
#endif
// standard-mandated includes
// [iterator.range]

View File

@ -34,6 +34,11 @@
// This test doesn't work on AIX or Windows, but it should. Needs investigation.
// XFAIL: buildhost=aix, buildhost=windows
// This test is not supported when we remove the transitive includes provided for backwards
// compatibility. When we bulk-remove them, we'll adjust the includes that are expected by
// this test instead.
// XFAIL: transitive-includes-disabled
// Prevent <ext/hash_map> from generating deprecated warnings for this test.
#if defined(__DEPRECATED)
# undef __DEPRECATED

View File

@ -1,6 +1,7 @@
algorithm
atomic
bit
chrono
climits
cmath
compare
@ -13,6 +14,7 @@ ctime
exception
initializer_list
iosfwd
iterator
limits
memory
new
@ -21,4 +23,6 @@ stdexcept
tuple
type_traits
typeinfo
utility
variant
version

View File

@ -1,5 +1,6 @@
any
atomic
chrono
climits
cmath
compare
@ -12,6 +13,7 @@ ctime
exception
initializer_list
iosfwd
iterator
limits
memory
new
@ -20,4 +22,6 @@ stdexcept
tuple
type_traits
typeinfo
utility
variant
version

View File

@ -1,14 +1,29 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
concepts
cstddef
cstdint
cstdlib
cstring
ctime
exception
initializer_list
iosfwd
iterator
limits
memory
new
ratio
stdexcept
tuple
type_traits
typeinfo
utility
variant
version

View File

@ -1,5 +1,8 @@
atomic
chrono
climits
cmath
compare
cstddef
cstdint
cstring

View File

@ -1,5 +1,6 @@
atomic
barrier
chrono
climits
cmath
compare
@ -12,6 +13,7 @@ ctime
exception
initializer_list
iosfwd
iterator
limits
memory
new
@ -20,4 +22,6 @@ stdexcept
tuple
type_traits
typeinfo
utility
variant
version

View File

@ -2,6 +2,7 @@ bit
cstddef
cstdint
cstdlib
iosfwd
limits
type_traits
version

View File

@ -1,6 +1,10 @@
algorithm
array
atomic
bit
bitset
cctype
chrono
climits
cmath
compare
@ -14,11 +18,14 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
iosfwd
iterator
limits
memory
new
optional
ratio
stdexcept
string
@ -26,4 +33,8 @@ string_view
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,8 +1,12 @@
algorithm
array
atomic
bit
bitset
ccomplex
cctype
cerrno
chrono
climits
cmath
compare
@ -18,15 +22,18 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
ios
iosfwd
istream
iterator
limits
locale
memory
mutex
new
optional
ostream
ratio
sstream
@ -38,4 +45,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -6,6 +6,7 @@ cstddef
cstdint
cstdlib
cstring
iosfwd
limits
type_traits
version

View File

@ -1,6 +1,10 @@
algorithm
array
atomic
bit
cctype
cerrno
chrono
climits
cmath
codecvt
@ -15,12 +19,15 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
iosfwd
iterator
limits
memory
mutex
new
optional
ratio
stdexcept
string
@ -29,4 +36,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,7 +1,11 @@
algorithm
array
atomic
bit
bitset
cctype
cerrno
chrono
climits
cmath
compare
@ -17,15 +21,18 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
ios
iosfwd
istream
iterator
limits
locale
memory
mutex
new
optional
ostream
ratio
sstream
@ -37,4 +44,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,6 +1,10 @@
algorithm
array
atomic
bit
cctype
cerrno
chrono
climits
cmath
compare
@ -15,11 +19,14 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
iosfwd
iterator
limits
memory
new
optional
ratio
stdexcept
string
@ -28,4 +35,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -4,6 +4,7 @@ coroutine
cstddef
cstdint
cstring
iosfwd
limits
type_traits
version

View File

@ -1,8 +1,12 @@
algorithm
array
atomic
bit
bitset
ccomplex
cctype
cerrno
chrono
climits
cmath
compare
@ -19,15 +23,18 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
ios
iosfwd
istream
iterator
limits
locale
memory
mutex
new
optional
ostream
ratio
sstream
@ -39,4 +46,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,4 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -10,14 +14,21 @@ cstring
ctime
deque
exception
functional
initializer_list
iosfwd
iterator
limits
memory
new
optional
ratio
stdexcept
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,6 +1,7 @@
algorithm
atomic
bit
chrono
climits
cmath
compare
@ -14,6 +15,7 @@ exception
experimental/algorithm
initializer_list
iosfwd
iterator
limits
memory
new
@ -22,4 +24,6 @@ stdexcept
tuple
type_traits
typeinfo
utility
variant
version

View File

@ -1,4 +1,5 @@
atomic
chrono
climits
cmath
compare
@ -12,6 +13,7 @@ exception
experimental/coroutine
initializer_list
iosfwd
iterator
limits
memory
new
@ -20,4 +22,6 @@ stdexcept
tuple
type_traits
typeinfo
utility
variant
version

View File

@ -1,4 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -13,15 +17,21 @@ exception
experimental/deque
experimental/memory_resource
experimental/utility
functional
initializer_list
iosfwd
iterator
limits
memory
new
optional
ratio
stdexcept
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,4 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -13,15 +17,21 @@ experimental/forward_list
experimental/memory_resource
experimental/utility
forward_list
functional
initializer_list
iosfwd
iterator
limits
memory
new
optional
ratio
stdexcept
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,5 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -14,6 +17,7 @@ experimental/functional
functional
initializer_list
iosfwd
iterator
limits
memory
new
@ -24,5 +28,7 @@ tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -14,5 +14,7 @@ limits
new
tuple
type_traits
typeinfo
utility
variant
version

View File

@ -1,4 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -12,16 +16,22 @@ exception
experimental/list
experimental/memory_resource
experimental/utility
functional
initializer_list
iosfwd
iterator
limits
list
memory
new
optional
ratio
stdexcept
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,4 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -12,8 +16,10 @@ exception
experimental/map
experimental/memory_resource
experimental/utility
functional
initializer_list
iosfwd
iterator
limits
map
memory
@ -24,5 +30,8 @@ stdexcept
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,4 +1,5 @@
atomic
chrono
climits
cmath
compare
@ -13,6 +14,7 @@ experimental/memory_resource
experimental/utility
initializer_list
iosfwd
iterator
limits
memory
new
@ -22,4 +24,5 @@ tuple
type_traits
typeinfo
utility
variant
version

View File

@ -1,6 +1,10 @@
algorithm
array
atomic
bit
cctype
cerrno
chrono
climits
cmath
compare
@ -19,12 +23,15 @@ experimental/memory_resource
experimental/regex
experimental/string
experimental/utility
functional
initializer_list
iosfwd
iterator
limits
memory
mutex
new
optional
ratio
regex
stdexcept
@ -34,6 +41,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,4 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -12,8 +16,10 @@ exception
experimental/memory_resource
experimental/set
experimental/utility
functional
initializer_list
iosfwd
iterator
limits
memory
new
@ -24,5 +30,8 @@ stdexcept
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,16 +1,34 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
concepts
cstddef
cstdint
cstdlib
cstring
ctime
exception
experimental/simd
functional
initializer_list
iosfwd
iterator
limits
memory
new
optional
ratio
stdexcept
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,5 +1,9 @@
algorithm
array
atomic
bit
cctype
chrono
climits
cmath
compare
@ -16,11 +20,14 @@ exception
experimental/memory_resource
experimental/string
experimental/utility
functional
initializer_list
iosfwd
iterator
limits
memory
new
optional
ratio
stdexcept
string
@ -28,5 +35,8 @@ string_view
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,4 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -12,8 +16,10 @@ exception
experimental/memory_resource
experimental/unordered_map
experimental/utility
functional
initializer_list
iosfwd
iterator
limits
memory
new
@ -25,4 +31,6 @@ type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,4 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -12,8 +16,10 @@ exception
experimental/memory_resource
experimental/unordered_set
experimental/utility
functional
initializer_list
iosfwd
iterator
limits
memory
new
@ -23,6 +29,9 @@ stdexcept
tuple
type_traits
typeinfo
unordered_map
unordered_set
utility
variant
vector
version

View File

@ -5,6 +5,7 @@ cstdint
cstdlib
experimental/utility
initializer_list
iosfwd
limits
type_traits
utility

View File

@ -1,4 +1,7 @@
algorithm
atomic
bit
chrono
climits
cmath
compare
@ -14,6 +17,7 @@ experimental/utility
experimental/vector
initializer_list
iosfwd
iterator
limits
memory
new
@ -23,5 +27,6 @@ tuple
type_traits
typeinfo
utility
variant
vector
version

View File

@ -3,6 +3,7 @@ array
atomic
bit
cctype
chrono
climits
cmath
compare
@ -20,6 +21,7 @@ ext/hash_map
functional
initializer_list
iosfwd
iterator
limits
memory
new
@ -32,5 +34,7 @@ tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -3,6 +3,7 @@ array
atomic
bit
cctype
chrono
climits
cmath
compare
@ -20,6 +21,7 @@ ext/hash_set
functional
initializer_list
iosfwd
iterator
limits
memory
new
@ -32,5 +34,7 @@ tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,7 +1,11 @@
algorithm
array
atomic
bit
bitset
cctype
cerrno
chrono
climits
cmath
compare
@ -17,16 +21,19 @@ cwchar
cwctype
exception
filesystem
functional
initializer_list
iomanip
ios
iosfwd
istream
iterator
limits
locale
memory
mutex
new
optional
ostream
ratio
stdexcept
@ -37,4 +44,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,9 +1,11 @@
algorithm
array
atomic
bit
cctype
cerrno
charconv
chrono
climits
cmath
compare
@ -19,9 +21,11 @@ cwchar
cwctype
exception
format
functional
initializer_list
ios
iosfwd
iterator
limits
locale
memory
@ -37,4 +41,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,4 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -10,14 +14,21 @@ cstring
ctime
exception
forward_list
functional
initializer_list
iosfwd
iterator
limits
memory
new
optional
ratio
stdexcept
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,7 +1,11 @@
algorithm
array
atomic
bit
bitset
cctype
cerrno
chrono
climits
cmath
compare
@ -18,16 +22,19 @@ cwctype
exception
filesystem
fstream
functional
initializer_list
iomanip
ios
iosfwd
istream
iterator
limits
locale
memory
mutex
new
optional
ostream
ratio
stdexcept
@ -38,4 +45,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,5 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -13,6 +16,7 @@ exception
functional
initializer_list
iosfwd
iterator
limits
memory
new
@ -23,5 +27,7 @@ tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,6 +1,10 @@
algorithm
array
atomic
bit
cctype
cerrno
chrono
climits
cmath
compare
@ -14,13 +18,16 @@ ctime
cwchar
cwctype
exception
functional
future
initializer_list
iosfwd
iterator
limits
memory
mutex
new
optional
ratio
stdexcept
string
@ -30,4 +37,8 @@ thread
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,7 +1,11 @@
algorithm
array
atomic
bit
bitset
cctype
cerrno
chrono
climits
cmath
compare
@ -16,16 +20,19 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
iomanip
ios
iosfwd
istream
iterator
limits
locale
memory
mutex
new
optional
ostream
ratio
stdexcept
@ -36,4 +43,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,6 +1,10 @@
algorithm
array
atomic
bit
cctype
cerrno
chrono
climits
cmath
compare
@ -14,13 +18,16 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
ios
iosfwd
iterator
limits
memory
mutex
new
optional
ratio
stdexcept
string
@ -29,4 +36,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,7 +1,11 @@
algorithm
array
atomic
bit
bitset
cctype
cerrno
chrono
climits
cmath
compare
@ -16,16 +20,19 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
ios
iosfwd
iostream
istream
iterator
limits
locale
memory
mutex
new
optional
ostream
ratio
stdexcept
@ -36,4 +43,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,7 +1,11 @@
algorithm
array
atomic
bit
bitset
cctype
cerrno
chrono
climits
cmath
compare
@ -16,15 +20,18 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
ios
iosfwd
istream
iterator
limits
locale
memory
mutex
new
optional
ostream
ratio
stdexcept
@ -35,4 +42,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -13,5 +13,7 @@ limits
new
tuple
type_traits
typeinfo
utility
variant
version

View File

@ -1,5 +1,8 @@
atomic
chrono
climits
cmath
compare
cstddef
cstdint
cstring

View File

@ -1,4 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -9,15 +13,22 @@ cstdlib
cstring
ctime
exception
functional
initializer_list
iosfwd
iterator
limits
list
memory
new
optional
ratio
stdexcept
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,6 +1,10 @@
algorithm
array
atomic
bit
cctype
cerrno
chrono
climits
cmath
compare
@ -15,14 +19,17 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
ios
iosfwd
iterator
limits
locale
memory
mutex
new
optional
ratio
stdexcept
streambuf
@ -32,4 +39,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,4 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -9,8 +13,10 @@ cstdlib
cstring
ctime
exception
functional
initializer_list
iosfwd
iterator
limits
map
memory
@ -21,4 +27,8 @@ stdexcept
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,4 +1,5 @@
atomic
chrono
climits
cmath
compare
@ -11,6 +12,7 @@ ctime
exception
initializer_list
iosfwd
iterator
limits
memory
new
@ -19,4 +21,6 @@ stdexcept
tuple
type_traits
typeinfo
utility
variant
version

View File

@ -1,6 +1,10 @@
algorithm
array
atomic
bit
cctype
cerrno
chrono
climits
cmath
compare
@ -14,12 +18,15 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
iosfwd
iterator
limits
memory
mutex
new
optional
ratio
stdexcept
string
@ -28,4 +35,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,8 +1,34 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
concepts
cstddef
cstdint
cstdlib
cstring
ctime
exception
functional
initializer_list
iosfwd
iterator
limits
memory
new
numeric
optional
ratio
stdexcept
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,15 +1,27 @@
atomic
chrono
climits
cmath
compare
concepts
cstddef
cstdint
cstdlib
cstring
ctime
exception
initializer_list
iosfwd
iterator
limits
memory
new
optional
ratio
stdexcept
tuple
type_traits
typeinfo
utility
variant
version

View File

@ -1,7 +1,11 @@
algorithm
array
atomic
bit
bitset
cctype
cerrno
chrono
climits
cmath
compare
@ -16,14 +20,17 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
ios
iosfwd
iterator
limits
locale
memory
mutex
new
optional
ostream
ratio
stdexcept
@ -34,4 +41,8 @@ system_error
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,4 +1,8 @@
algorithm
array
atomic
bit
chrono
climits
cmath
compare
@ -10,16 +14,22 @@ cstring
ctime
deque
exception
functional
initializer_list
iosfwd
iterator
limits
memory
new
optional
queue
ratio
stdexcept
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

View File

@ -1,6 +1,9 @@
algorithm
array
atomic
bit
cctype
chrono
climits
cmath
compare
@ -14,12 +17,15 @@ ctime
cwchar
cwctype
exception
functional
initializer_list
iosfwd
iterator
limits
memory
new
numeric
optional
random
ratio
stdexcept
@ -28,5 +34,8 @@ string_view
tuple
type_traits
typeinfo
unordered_map
utility
variant
vector
version

Some files were not shown because too many files have changed in this diff Show More