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... |