mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-21 01:55:15 +08:00
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
This commit is contained in:
parent
dc4dd7f63f
commit
ea594612f0
@ -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):
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user