2017-05-11 François Dumont <fdumont@gcc.gnu.org>
authorFrançois Dumont <fdumont@gcc.gnu.org>
Thu, 11 May 2017 20:03:47 +0000 (20:03 +0000)
committerFrançois Dumont <fdumont@gcc.gnu.org>
Thu, 11 May 2017 20:03:47 +0000 (20:03 +0000)
* include/debug/safe_container.h [_GLIBCXX_USE_CXX11_ABI]
(_Safe_container<>): Remove _IsCxx11AllocatorAware template parameter.
* include/debug/string: Adapt.

From-SVN: r247926

libstdc++-v3/ChangeLog
libstdc++-v3/include/debug/safe_container.h
libstdc++-v3/include/debug/string

index 21cdba332f888b818a4581d33008bdfaeda324c7..6d626f2343fa18d37ec7a66f5814a074261d5d9b 100644 (file)
@@ -1,5 +1,9 @@
 2017-05-11  François Dumont  <fdumont@gcc.gnu.org>
 
+       * include/debug/safe_container.h [_GLIBCXX_USE_CXX11_ABI]
+       (_Safe_container<>): Remove _IsCxx11AllocatorAware template parameter.
+       * include/debug/string: Adapt.
+
        * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
        (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
        (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
index 3d44c15cdf30faf109bc84a98f2f354bed423921..e985c2ae88aad5611c09dd2508cca8968b7bf4bd 100644 (file)
@@ -36,8 +36,12 @@ namespace __gnu_debug
   /// Safe class dealing with some allocator dependent operations.
   template<typename _SafeContainer,
           typename _Alloc,
-          template<typename> class _SafeBase,
-          bool _IsCxx11AllocatorAware = true>
+          template<typename> class _SafeBase
+#if _GLIBCXX_USE_CXX11_ABI
+          >
+#else
+          , bool _IsCxx11AllocatorAware = true>
+#endif
     class _Safe_container
     : public _SafeBase<_SafeContainer>
     {
@@ -82,8 +86,10 @@ namespace __gnu_debug
       {
        __glibcxx_check_self_move_assign(__x);
 
+#  if !_GLIBCXX_USE_CXX11_ABI
        if (_IsCxx11AllocatorAware)
          {
+#  endif
            typedef __gnu_cxx::__alloc_traits<_Alloc> _Alloc_traits;
 
            bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
@@ -92,9 +98,11 @@ namespace __gnu_debug
              _Base::_M_swap(__x);
            else
              this->_M_invalidate_all();
+#  if !_GLIBCXX_USE_CXX11_ABI
          }
        else
          _Base::_M_swap(__x);
+#  endif
 
        __x._M_invalidate_all();
        return *this;
@@ -103,7 +111,9 @@ namespace __gnu_debug
       void
       _M_swap(_Safe_container& __x) noexcept
       {
+#  if !_GLIBCXX_USE_CXX11_ABI
        if (_IsCxx11AllocatorAware)
+#  endif
          {
            typedef __gnu_cxx::__alloc_traits<_Alloc> _Alloc_traits;
 
index 9d4057b7d4372e34e8512526421b790682796c0e..8fd292a45a443d5600e584278387a81e3ce14567 100644 (file)
@@ -44,13 +44,20 @@ template<typename _CharT, typename _Traits = std::char_traits<_CharT>,
   class basic_string
   : public __gnu_debug::_Safe_container<
       basic_string<_CharT, _Traits, _Allocator>,
-      _Allocator, _Safe_sequence, bool(_GLIBCXX_USE_CXX11_ABI)>,
+#if _GLIBCXX_USE_CXX11_ABI
+      _Allocator, _Safe_sequence>,
+#else
+      _Allocator, _Safe_sequence, false>,
+#endif
     public std::basic_string<_CharT, _Traits, _Allocator>
   {
     typedef std::basic_string<_CharT, _Traits, _Allocator>     _Base;
     typedef __gnu_debug::_Safe_container<
-      basic_string, _Allocator, _Safe_sequence, bool(_GLIBCXX_USE_CXX11_ABI)>
-      _Safe;
+#if _GLIBCXX_USE_CXX11_ABI
+      basic_string, _Allocator, _Safe_sequence> _Safe;
+#else
+      basic_string, _Allocator, _Safe_sequence, false> _Safe;
+#endif
 
   public:
     // types: