gcc/libstdc++-v3/include
Jonathan Wakely 1a289fa362 Export explicit instantiations for C++17 members of std::string
The C++17 standard added some new members to std::basic_string, which
were not previously instantiated in the library. This meant that the
extern template declarations had to be disabled for C++17 mode. With
this patch the new members are instantiated in the library and so the
explicit instantiation declarations can be used for C++17.

The new members added by C++2a are still not exported, and so the
explicit instantiation declarations are still disabled for C++2a.

	* config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Make patterns less greedy
	for const member functions of std::basic_string.
	(GLIBCXX_3.4.26): Export member functions of std::basic_string added
	in C++17.
	* include/bits/basic_string.h (basic_string(__sv_wrapper, const A&)):
	Make non-standard constructor private.
	[!_GLIBCXX_USE_CXX11_ABI] (basic_string(__sv_wrapper, const A&)):
	Likewise.
	* include/bits/basic_string.tcc (std::string, std::wstring): Declare
	explicit instantiations for C++17 as well as earlier dialects.
	* src/c++17/Makefile.am: Add new source files.
	* src/c++17/Makefile.in: Regenerate.
	* src/c++17/cow-string-inst.cc: New file defining explicit
	instantiations for basic_string member functions added in C++17.
	* src/c++17/string-inst.cc: Likewise.

From-SVN: r267585
2019-01-04 23:23:22 +00:00
..
backward Update copyright years. 2019-01-01 13:31:55 +01:00
bits Export explicit instantiations for C++17 members of std::string 2019-01-04 23:23:22 +00:00
c Update copyright years. 2019-01-01 13:31:55 +01:00
c_compatibility Update copyright years. 2019-01-01 13:31:55 +01:00
c_global Update copyright years. 2019-01-01 13:31:55 +01:00
c_std Update copyright years. 2019-01-01 13:31:55 +01:00
debug PR libstdc++/88607 replace or remove unnecessary UTF-8 characters 2019-01-03 20:38:11 +00:00
decimal Update copyright years. 2019-01-01 13:31:55 +01:00
experimental PR libstdc++/88607 replace some more UTF-8 characters 2019-01-03 22:07:52 +00:00
ext Update copyright years. 2019-01-01 13:31:55 +01:00
parallel PR libstdc++/88607 replace or remove unnecessary UTF-8 characters 2019-01-03 20:38:11 +00:00
precompiled Update copyright years. 2019-01-01 13:31:55 +01:00
profile Update copyright years. 2019-01-01 13:31:55 +01:00
std PR libstdc++/88607 replace some more UTF-8 characters 2019-01-03 22:07:52 +00:00
tr1 Update copyright years. 2019-01-01 13:31:55 +01:00
tr2 Update copyright years. 2019-01-01 13:31:55 +01:00
Makefile.am Update copyright years. 2019-01-01 13:31:55 +01:00
Makefile.in Implement uniform container erasure for C++20. 2018-11-28 16:44:25 +00:00