From a5244b2ed5ccd1d1697ac1e288a9e1acc4a335cc Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Tue, 14 May 2013 15:17:18 +0000 Subject: [PATCH] stl_iterator.h (__normal_iterator<>::_M_const_cast): Use std::pointer_traits. 2013-05-14 Paolo Carlini * include/bits/stl_iterator.h (__normal_iterator<>::_M_const_cast): Use std::pointer_traits. From-SVN: r198891 --- libstdc++-v3/ChangeLog | 5 +++++ libstdc++-v3/include/bits/stl_iterator.h | 16 ++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index dc7d410e7bdc..c8087386f9a4 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2013-05-14 Paolo Carlini + + * include/bits/stl_iterator.h (__normal_iterator<>::_M_const_cast): + Use std::pointer_traits. + 2013-05-13 Benjamin Kosnik * libsupc++/Makefile.am (sources): Add bad_array_length.cc, diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h index a2762305109a..50b55eb57b42 100644 --- a/libstdc++-v3/include/bits/stl_iterator.h +++ b/libstdc++-v3/include/bits/stl_iterator.h @@ -63,7 +63,7 @@ #include #include #include -#include +#include namespace std _GLIBCXX_VISIBILITY(default) { @@ -736,9 +736,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __normal_iterator _M_const_cast() const - { return __normal_iterator - (__gnu_cxx::__const_pointer_cast - (_M_current)); } + { +#if __cplusplus >= 201103L + using _PTraits = std::pointer_traits; + return __normal_iterator + (_PTraits::pointer_to(const_cast + (*_M_current))); +#else + return __normal_iterator + (const_cast(_M_current)); +#endif + } // Forward iterator requirements reference -- 2.47.2