2018-08-22 Jonathan Wakely <jwakely@redhat.com>
+ PR libstdc++/87061
+ * include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI]
+ (experimental::pmr::match_results, experimental::pmr::cmatch)
+ (experimental::pmr::smatch, experimental::pmr::wcmatch)
+ (experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI,
+ because COW strings don't support C++11 allocator model.
+ * include/experimental/string [!_GLIBCXX_USE_CXX11_ABI]
+ (experimental::pmr::basic_string, experimental::pmr::string)
+ (experimental::pmr::u16string, experimental::pmr::u32string)
+ (experimental::pmr::wstring): Likewise.
+ * include/std/regex [!_GLIBCXX_USE_CXX11_ABI] (pmr::match_results)
+ (pmr::cmatch, pmr::smatch, pmr::wcmatch, pmr::wsmatch): Likewise.
+ * include/std/string [!_GLIBCXX_USE_CXX11_ABI] (pmr::basic_string)
+ (pmr::string, pmr::u16string, pmr::u32string, pmr::wstring): Likewise.
+ * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Require
+ cxx11-abi.
+ * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
+
PR libstdc++/78448
* include/bits/deque.tcc (deque::_M_range_initialize): Use
_S_check_init_len to check size.
{
inline namespace fundamentals_v2
{
+#if _GLIBCXX_USE_CXX11_ABI
namespace pmr
{
template<typename _BidirectionalIterator>
typedef match_results<wstring::const_iterator> wsmatch;
} // namespace pmr
-
+#endif
} // namespace fundamentals_v2
} // namespace experimental
_GLIBCXX_END_NAMESPACE_VERSION
__cont.end());
}
+#if _GLIBCXX_USE_CXX11_ABI
namespace pmr
{
// basic_string using polymorphic allocator in namespace pmr
typedef basic_string<wchar_t> wstring;
} // namespace pmr
+#endif
} // namespace fundamentals_v2
} // namespace experimental
#include <bits/regex.h>
#include <bits/regex_executor.h>
-#if __cplusplus >= 201703L
+#if __cplusplus >= 201703L && _GLIBCXX_USE_CXX11_ABI
#include <memory_resource>
namespace std _GLIBCXX_VISIBILITY(default)
{
#include <bits/basic_string.h>
#include <bits/basic_string.tcc>
-#if __cplusplus >= 201703L
+#if __cplusplus >= 201703L && _GLIBCXX_USE_CXX11_ABI
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION