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 |
|---|---|---|
| .. | ||
| abi.xml | Loading commit data... | |
| algorithms.xml | Loading commit data... | |
| allocator.xml | Loading commit data... | |
| appendix_contributing.xml | Loading commit data... | |
| appendix_free.xml | Loading commit data... | |
| appendix_porting.xml | Loading commit data... | |
| atomics.xml | Loading commit data... | |
| auto_ptr.xml | Loading commit data... | |
| backwards_compatibility.xml | Loading commit data... | |
| bitmap_allocator.xml | Loading commit data... | |
| build_hacking.xml | Loading commit data... | |
| codecvt.xml | Loading commit data... | |
| concurrency.xml | Loading commit data... | |
| concurrency_extensions.xml | Loading commit data... | |
| configure.xml | Loading commit data... | |
| containers.xml | Loading commit data... | |
| ctype.xml | Loading commit data... | |
| debug.xml | Loading commit data... | |
| debug_mode.xml | Loading commit data... | |
| diagnostics.xml | Loading commit data... | |
| documentation_hacking.xml | Loading commit data... | |
| evolution.xml | Loading commit data... | |
| extensions.xml | Loading commit data... | |
| internals.xml | Loading commit data... | |
| intro.xml | Loading commit data... | |
| io.xml | Loading commit data... | |
| iterators.xml | Loading commit data... | |
| locale.xml | Loading commit data... | |
| localization.xml | Loading commit data... | |
| messages.xml | Loading commit data... | |
| mt_allocator.xml | Loading commit data... | |
| numerics.xml | Loading commit data... | |
| parallel_mode.xml | Loading commit data... | |
| policy_data_structures.xml | Loading commit data... | |
| policy_data_structures_biblio.xml | Loading commit data... | |
| prerequisites.xml | Loading commit data... | |
| profile_mode.xml | Loading commit data... | |
| shared_ptr.xml | Loading commit data... | |
| spine.xml | Loading commit data... | |
| status_cxx1998.xml | Loading commit data... | |
| status_cxx2011.xml | Loading commit data... | |
| status_cxx2014.xml | Loading commit data... | |
| status_cxx2017.xml | Loading commit data... | |
| status_cxxis29124.xml | Loading commit data... | |
| status_cxxtr1.xml | Loading commit data... | |
| status_cxxtr24733.xml | Loading commit data... | |
| strings.xml | Loading commit data... | |
| support.xml | Loading commit data... | |
| test.xml | Loading commit data... | |
| test_policy_data_structures.xml | Loading commit data... | |
| using.xml | Loading commit data... | |
| using_exceptions.xml | Loading commit data... | |
| utilities.xml | Loading commit data... |