gcc/libstdc++-v3/include/std
Jonathan Wakely ff27340046 Don't unconditionally define feature test macros in <version>
The macro definitions in <version> should depend on the same
preprocessor conditions as the original macros in other headers.
Otherwise <version> can define macros that imply the availability of
features that are not actually defined.

This fix is incomplete, as __cpp_lib_filesystem should depend on whether
libstdc++fs.a is supported, and several macros should only be defined
when _GLIBCXX_HOSTED is defined. Also, the feature test macros should
define their value as type long, but most are type int.

	* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
	(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
	(_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
	instead of __has_builtin.
	* include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
	(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
	* include/std/version [!_GLIBCXX_HAS_GTHREADS]
	(__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
	(__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
	[!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
	(__cpp_lib_has_unique_object_representations): Don't define when
	builtin not available.
	[!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
	Likewise.
	[!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
	* libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
	from here.

From-SVN: r263184
2018-07-31 23:31:14 +01:00
..
algorithm Update copyright years. 2018-01-03 11:03:58 +01:00
any Define std::remove_cvref and std::remove_cvref_t for C++2a 2018-05-03 13:40:10 +01:00
array Update copyright years. 2018-01-03 11:03:58 +01:00
atomic Implement P0558R2 changes to std::atomic 2018-05-24 16:28:26 +01:00
bit Minor refactoring in <bit> header 2018-07-24 14:51:50 +01:00
bitset Define special members as defaulted 2018-06-08 17:43:14 +01:00
charconv Update copyright years. 2018-01-03 11:03:58 +01:00
chrono Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
codecvt Remove char16_t and char32_t dependency on <stdint.h> 2018-07-26 15:02:01 +01:00
complex Define special members as defaulted 2018-06-08 17:43:14 +01:00
condition_variable Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
deque Update copyright years. 2018-01-03 11:03:58 +01:00
filesystem Update copyright years. 2018-01-03 11:03:58 +01:00
forward_list Update copyright years. 2018-01-03 11:03:58 +01:00
fstream Add support for opening file streams from wide character strings 2018-05-21 18:18:35 +01:00
functional PR libstdc++/83607 specialize Boyer-Moore searchers for std::byte 2018-01-04 10:21:29 +00:00
future Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
iomanip PR libstdc++/86008 add std::quoted support for string_view 2018-06-06 07:05:07 +01:00
ios Update copyright years. 2018-01-03 11:03:58 +01:00
iosfwd Update copyright years. 2018-01-03 11:03:58 +01:00
iostream Update copyright years. 2018-01-03 11:03:58 +01:00
istream Update copyright years. 2018-01-03 11:03:58 +01:00
iterator Update copyright years. 2018-01-03 11:03:58 +01:00
limits Update copyright years. 2018-01-03 11:03:58 +01:00
list Update copyright years. 2018-01-03 11:03:58 +01:00
locale Update copyright years. 2018-01-03 11:03:58 +01:00
map Update copyright years. 2018-01-03 11:03:58 +01:00
memory Modify some library internals to work without <stdint.h> 2018-07-26 15:02:05 +01:00
memory_resource Add initial version of C++17 <memory_resource> header 2018-07-24 22:09:55 +01:00
mutex Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
numeric Update copyright years. 2018-01-03 11:03:58 +01:00
optional PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>> 2018-05-04 09:57:23 +01:00
ostream Update copyright years. 2018-01-03 11:03:58 +01:00
queue Update copyright years. 2018-01-03 11:03:58 +01:00
random Update copyright years. 2018-01-03 11:03:58 +01:00
ratio Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
regex Update copyright years. 2018-01-03 11:03:58 +01:00
scoped_allocator LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs 2018-06-18 21:17:44 +01:00
set Update copyright years. 2018-01-03 11:03:58 +01:00
shared_mutex Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
sstream P0935R0 Eradicating unnecessarily explicit default constructors 2018-07-06 13:39:02 +01:00
stack Update copyright years. 2018-01-03 11:03:58 +01:00
stdexcept PR libstdc++/85831 define move constructors and operators for exceptions 2018-07-05 22:29:51 +01:00
streambuf Update copyright years. 2018-01-03 11:03:58 +01:00
string Update copyright years. 2018-01-03 11:03:58 +01:00
string_view Remove char16_t and char32_t dependency on <stdint.h> 2018-07-26 15:02:01 +01:00
system_error Some libstdc++ fixes for -Wdeprecated-copy. 2018-05-18 16:02:14 -04:00
thread Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
tuple Partially revert move of std::tuple_element_t to <tuple> 2018-06-14 20:02:40 +01:00
type_traits Don't unconditionally define feature test macros in <version> 2018-07-31 23:31:14 +01:00
typeindex Update copyright years. 2018-01-03 11:03:58 +01:00
unordered_map Update copyright years. 2018-01-03 11:03:58 +01:00
unordered_set Update copyright years. 2018-01-03 11:03:58 +01:00
utility Remove unused <exception> header from <utility> 2018-06-19 18:19:16 +01:00
valarray LWG 3074 make scalar types non-deduced in valarray non-member functions 2018-06-14 20:36:54 +01:00
variant * include/std/variant (__accepted_index): Use void_t. 2018-07-06 11:20:38 +01:00
vector Update copyright years. 2018-01-03 11:03:58 +01:00
version Don't unconditionally define feature test macros in <version> 2018-07-31 23:31:14 +01:00