stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject [PATCH] std::string::_C_grow() 4.2 incompatibility (was: Re: difference in exported symbols between 4.1.3 and 4.2.0 15d dll's (MSVC 7.1))
Date Wed, 17 Oct 2007 22:12:31 GMT
Martin Sebor wrote:
> Some more wisdom that I had snipped previously:
> 
> Travis Vitek wrote:
> [...]
>  >
>  > Note that the basic_string<>::_C_grow() method is not accessed by any
>  > inline member functions, but it still causes problems. I don't think we
>  > can skip fixing these problems just because a function appears to not be
>  > accessable to user code.
>  >
> 
> Ah, I know why! Because it's called from a member template which
> gets instantiated in the test.
> 
> So we need to add string::_C_grow() to the list of symbols to
> fix in 4.2.0.

Travis, can you try this patch?

Index: include/string
===================================================================
--- include/string      (revision 585584)
+++ include/string      (working copy)
@@ -504,8 +504,6 @@
          return _C_make_iter (_C_data + __pos1);
      }

-public:
-
  #ifndef _RWSTD_NO_STRING_OUTLINED_MEMBER_TEMPLATES

      template <class _InputIter>
@@ -519,6 +517,8 @@
          return __rw_replace_aux (*this, __first1, __last1, __first2, 
__last2);
      }

+public:
+
  #endif   // _RWSTD_NO_STRING_OUTLINED_MEMBER_TEMPLATES

      size_type _C_grow (size_type, size_type) const;


Mime
View raw message