Commit ea594612 by François Dumont

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.

From-SVN: r247926
parent dc4dd7f6
2017-05-11 François Dumont <fdumont@gcc.gnu.org> 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] * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
(__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove. (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
(__gnu_debug::_Error_formatter::_Parameter::_M_print_description): (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
......
...@@ -36,8 +36,12 @@ namespace __gnu_debug ...@@ -36,8 +36,12 @@ namespace __gnu_debug
/// Safe class dealing with some allocator dependent operations. /// Safe class dealing with some allocator dependent operations.
template<typename _SafeContainer, template<typename _SafeContainer,
typename _Alloc, typename _Alloc,
template<typename> class _SafeBase, template<typename> class _SafeBase
bool _IsCxx11AllocatorAware = true> #if _GLIBCXX_USE_CXX11_ABI
>
#else
, bool _IsCxx11AllocatorAware = true>
#endif
class _Safe_container class _Safe_container
: public _SafeBase<_SafeContainer> : public _SafeBase<_SafeContainer>
{ {
...@@ -82,8 +86,10 @@ namespace __gnu_debug ...@@ -82,8 +86,10 @@ namespace __gnu_debug
{ {
__glibcxx_check_self_move_assign(__x); __glibcxx_check_self_move_assign(__x);
# if !_GLIBCXX_USE_CXX11_ABI
if (_IsCxx11AllocatorAware) if (_IsCxx11AllocatorAware)
{ {
# endif
typedef __gnu_cxx::__alloc_traits<_Alloc> _Alloc_traits; typedef __gnu_cxx::__alloc_traits<_Alloc> _Alloc_traits;
bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign() bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
...@@ -92,9 +98,11 @@ namespace __gnu_debug ...@@ -92,9 +98,11 @@ namespace __gnu_debug
_Base::_M_swap(__x); _Base::_M_swap(__x);
else else
this->_M_invalidate_all(); this->_M_invalidate_all();
# if !_GLIBCXX_USE_CXX11_ABI
} }
else else
_Base::_M_swap(__x); _Base::_M_swap(__x);
# endif
__x._M_invalidate_all(); __x._M_invalidate_all();
return *this; return *this;
...@@ -103,7 +111,9 @@ namespace __gnu_debug ...@@ -103,7 +111,9 @@ namespace __gnu_debug
void void
_M_swap(_Safe_container& __x) noexcept _M_swap(_Safe_container& __x) noexcept
{ {
# if !_GLIBCXX_USE_CXX11_ABI
if (_IsCxx11AllocatorAware) if (_IsCxx11AllocatorAware)
# endif
{ {
typedef __gnu_cxx::__alloc_traits<_Alloc> _Alloc_traits; typedef __gnu_cxx::__alloc_traits<_Alloc> _Alloc_traits;
......
...@@ -44,13 +44,20 @@ template<typename _CharT, typename _Traits = std::char_traits<_CharT>, ...@@ -44,13 +44,20 @@ template<typename _CharT, typename _Traits = std::char_traits<_CharT>,
class basic_string class basic_string
: public __gnu_debug::_Safe_container< : public __gnu_debug::_Safe_container<
basic_string<_CharT, _Traits, _Allocator>, 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> public std::basic_string<_CharT, _Traits, _Allocator>
{ {
typedef std::basic_string<_CharT, _Traits, _Allocator> _Base; typedef std::basic_string<_CharT, _Traits, _Allocator> _Base;
typedef __gnu_debug::_Safe_container< typedef __gnu_debug::_Safe_container<
basic_string, _Allocator, _Safe_sequence, bool(_GLIBCXX_USE_CXX11_ABI)> #if _GLIBCXX_USE_CXX11_ABI
_Safe; basic_string, _Allocator, _Safe_sequence> _Safe;
#else
basic_string, _Allocator, _Safe_sequence, false> _Safe;
#endif
public: public:
// types: // types:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment