2008-04-24 Martin Sebor <sebor@roguewave.com>
Merged revs 648509 and 648403 from trunk.
2008-04-15 Martin Sebor <sebor@roguewave.com>
STDCXX-832
* include/string.cc (_C_get_rep): Used two static_casts via void*
instead of a single reinterpret_cast to prevent HP aCC 6 warning
#4232: conversion from "wchar_t*" to a more strictly aligned type.
2008-04-15 Martin Sebor <sebor@roguewave.com>
STDCXX-874
* include/string (__rw_replace, __rw_replace_aux): Decorated
exported templates with the export keyword.
* include/string.cc: Same.
git-svn-id: https://svn.apache.org/repos/asf/stdcxx/branches/4.2.x@651447 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/include/string b/include/string
index 482f8e1..8196a54 100644
--- a/include/string
+++ b/include/string
@@ -56,12 +56,14 @@
#ifndef _RWSTD_NO_MEMBER_TEMPLATES
# ifdef _RWSTD_NO_STRING_OUTLINED_MEMBER_TEMPLATES
+_EXPORT
template <class _CharT, class _Traits, class _Alloc,
class _StringIter, class _InputIter>
std::basic_string<_CharT, _Traits, _Alloc>&
__rw_replace (std::basic_string<_CharT, _Traits, _Alloc>&,
_StringIter, _StringIter, _InputIter, _InputIter);
+_EXPORT
template <class _CharT, class _Traits, class _Alloc,
class _StringIter, class _InputIter>
std::basic_string<_CharT, _Traits, _Alloc>&
diff --git a/include/string.cc b/include/string.cc
index e4a8923..767efad 100644
--- a/include/string.cc
+++ b/include/string.cc
@@ -22,7 +22,7 @@
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*
- * Copyright 1994-2006 Rogue Wave Software.
+ * Copyright 1994-2008 Rogue Wave Software, Inc.
*
**************************************************************************/
@@ -101,10 +101,11 @@
// allocate, initialize the __string_ref, and initialize each character
_C_string_ref_type* const __ret =
- _RWSTD_REINTERPRET_CAST (_C_string_ref_type*,
- _RWSTD_VALUE_ALLOC (_C_value_alloc_type, *this,
- allocate (__cap + sizeof (_C_string_ref_type) /
- sizeof (value_type) + 2)));
+ _RWSTD_STATIC_CAST (_C_string_ref_type*,
+ _RWSTD_STATIC_CAST (void*,
+ _RWSTD_VALUE_ALLOC (_C_value_alloc_type, *this,
+ allocate ( __cap + sizeof (_C_string_ref_type)
+ / sizeof (value_type) + 2))));
// avoid copy construction (mutex isn't copy-constructible)
// _C_ref_alloc_type (*this).construct (__ret, _C_string_ref_type ());
@@ -464,6 +465,7 @@
# ifdef _RWSTD_NO_STRING_OUTLINED_MEMBER_TEMPLATES
+_EXPORT
template <class _CharT, class _Traits, class _Alloc,
class _StringIter, class _InputIter>
_STD::basic_string<_CharT, _Traits, _Alloc>&
@@ -561,6 +563,7 @@
# ifdef _RWSTD_NO_STRING_OUTLINED_MEMBER_TEMPLATES
+_EXPORT
template <class _CharT, class _Traits, class _Alloc,
class _StringIter, class _InputIter>
_STD::basic_string<_CharT, _Traits, _Alloc>&