summaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2020-04-29 18:57:34 +0100
committerJonathan Wakely <jwakely@redhat.com>2020-04-29 19:00:58 +0100
commit8f1591763fd50b143af0dc1770741f326a97583a (patch)
treefbdb9632a278ba1059b384c66980c871875d49b4 /libstdc++-v3
parent0c8217b16f307c3eedce8f22354714938613f701 (diff)
libstdc++: Fix outdated comment about std::string instantiations (PR 94854)
PR libstdc++/94854 * include/bits/basic_string.tcc: Update comment about explicit instantiations.
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/bits/basic_string.tcc10
2 files changed, 11 insertions, 5 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index f8cf71e057f..2032e90abeb 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2020-04-29 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/94854
+ * include/bits/basic_string.tcc: Update comment about explicit
+ instantiations.
+
2020-04-28 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/91480
diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index e78bb2c14b3..e370f439390 100644
--- a/libstdc++-v3/include/bits/basic_string.tcc
+++ b/libstdc++-v3/include/bits/basic_string.tcc
@@ -1609,11 +1609,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
#if _GLIBCXX_EXTERN_TEMPLATE
- // The explicit instantiations definitions in src/c++11/string-inst.cc
- // are compiled as C++14, so the new C++17 members aren't instantiated.
- // Until those definitions are compiled as C++17 suppress the declaration,
- // so C++17 code will implicitly instantiate std::string and std::wstring
- // as needed.
+ // The explicit instantiation definitions in src/c++11/string-inst.cc and
+ // src/c++17/string-inst.cc only instantiate the members required for C++17
+ // and earlier standards (so not C++20's starts_with and ends_with).
+ // Suppress the explicit instantiation declarations for C++20, so C++20
+ // code will implicitly instantiate std::string and std::wstring as needed.
# if __cplusplus <= 201703L && _GLIBCXX_EXTERN_TEMPLATE > 0
extern template class basic_string<char>;
# elif ! _GLIBCXX_USE_CXX11_ABI