When deduction guides are supported by the compiler (i.e. for C++17 and later) replace two basic_string constructors by constrained function templates as required by LWG 3075. In order to ensure that the pre-C++17 non-template constructors are still exported from the shared library define a macro in src/c++11/string-inst.cc to force the non-template declarations (this isn't strictly needed yet, because the string instantiations are compiled with -std=gnu++11, but that is likely to change). LWG 3076 basic_string CTAD ambiguity * doc/xml/manual/intro.xml: Document LWG 3076 change. * include/bits/basic_string.h [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS] (basic_string(const _CharT*, const _Alloc&)): Turn into a function template constrained by _RequireAllocator. (basic_string(size_type, _CharT, const _Alloc&)): Likewise. * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS): Define. * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test deduction * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: Likewise. From-SVN: r261670
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| Makefile.am | Loading commit data... | |
| Makefile.in | Loading commit data... | |
| chrono.cc | Loading commit data... | |
| codecvt.cc | Loading commit data... | |
| compatibility-atomic-c++0x.cc | Loading commit data... | |
| compatibility-c++0x.cc | Loading commit data... | |
| compatibility-chrono.cc | Loading commit data... | |
| compatibility-condvar.cc | Loading commit data... | |
| compatibility-thread-c++0x.cc | Loading commit data... | |
| condition_variable.cc | Loading commit data... | |
| cow-fstream-inst.cc | Loading commit data... | |
| cow-locale_init.cc | Loading commit data... | |
| cow-shim_facets.cc | Loading commit data... | |
| cow-sstream-inst.cc | Loading commit data... | |
| cow-stdexcept.cc | Loading commit data... | |
| cow-string-inst.cc | Loading commit data... | |
| cow-string-io-inst.cc | Loading commit data... | |
| cow-wstring-inst.cc | Loading commit data... | |
| cow-wstring-io-inst.cc | Loading commit data... | |
| ctype.cc | Loading commit data... | |
| cxx11-hash_tr1.cc | Loading commit data... | |
| cxx11-ios_failure.cc | Loading commit data... | |
| cxx11-locale-inst.cc | Loading commit data... | |
| cxx11-shim_facets.cc | Loading commit data... | |
| cxx11-stdexcept.cc | Loading commit data... | |
| cxx11-wlocale-inst.cc | Loading commit data... | |
| debug.cc | Loading commit data... | |
| ext11-inst.cc | Loading commit data... | |
| fstream-inst.cc | Loading commit data... | |
| functexcept.cc | Loading commit data... | |
| functional.cc | Loading commit data... | |
| futex.cc | Loading commit data... | |
| future.cc | Loading commit data... | |
| hash_c++0x.cc | Loading commit data... | |
| hashtable_c++0x.cc | Loading commit data... | |
| ios-inst.cc | Loading commit data... | |
| ios.cc | Loading commit data... | |
| iostream-inst.cc | Loading commit data... | |
| istream-inst.cc | Loading commit data... | |
| limits.cc | Loading commit data... | |
| locale-inst.cc | Loading commit data... | |
| mutex.cc | Loading commit data... | |
| mutex_pool.h | Loading commit data... | |
| ostream-inst.cc | Loading commit data... | |
| placeholders.cc | Loading commit data... | |
| random.cc | Loading commit data... | |
| regex.cc | Loading commit data... | |
| shared_ptr.cc | Loading commit data... | |
| snprintf_lite.cc | Loading commit data... | |
| sso_string.cc | Loading commit data... | |
| sstream-inst.cc | Loading commit data... | |
| streambuf-inst.cc | Loading commit data... | |
| string-inst.cc | Loading commit data... | |
| string-io-inst.cc | Loading commit data... | |
| system_error.cc | Loading commit data... | |
| thread.cc | Loading commit data... | |
| wlocale-inst.cc | Loading commit data... | |
| wstring-inst.cc | Loading commit data... | |
| wstring-io-inst.cc | Loading commit data... |