cast.h: Fix typo in include guard.

2011-07-09  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/ext/cast.h: Fix typo in include guard.
	* include/ext/pointer.h (_Unqualified_type): Remove redundant
	partial specializations for volatile types. Fix typos in comments.
	(pointer_traits<_Pointer_adaptor<Tp>>::pointer_to): Define.

From-SVN: r176075
This commit is contained in:
Jonathan Wakely 2011-07-09 10:28:56 +00:00 committed by Jonathan Wakely
parent 0a222ba757
commit eece716393
3 changed files with 16 additions and 14 deletions

View File

@ -1,3 +1,10 @@
2011-07-09 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/ext/cast.h: Fix typo in include guard.
* include/ext/pointer.h (_Unqualified_type): Remove redundant
partial specializations for volatile types. Fix typos in comments.
(pointer_traits<_Pointer_adaptor<Tp>>::pointer_to): Define.
2011-07-09 Jonathan Wakely <jwakely.gcc@gmail.com> 2011-07-09 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/49668 PR libstdc++/49668

View File

@ -118,4 +118,4 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
} // namespace } // namespace
#endif // __GLIBCXX_CAST_H #endif // _GLIBCXX_CAST_H

View File

@ -232,7 +232,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ typedef const volatile _Invalid_type& reference; }; { typedef const volatile _Invalid_type& reference; };
/** /**
* This structure accomodates the way in which * This structure accommodates the way in which
* std::iterator_traits<> is normally specialized for const T*, so * std::iterator_traits<> is normally specialized for const T*, so
* that value_type is still T. * that value_type is still T.
*/ */
@ -244,14 +244,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
struct _Unqualified_type<const _Tp> struct _Unqualified_type<const _Tp>
{ typedef _Tp type; }; { typedef _Tp type; };
template<typename _Tp>
struct _Unqualified_type<volatile _Tp>
{ typedef volatile _Tp type; };
template<typename _Tp>
struct _Unqualified_type<volatile const _Tp>
{ typedef volatile _Tp type; };
/** /**
* The following provides an 'alternative pointer' that works with * The following provides an 'alternative pointer' that works with
* the containers when specified as the pointer typedef of the * the containers when specified as the pointer typedef of the
@ -266,7 +258,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* so that it becomes reusable for creating other pointer types. * so that it becomes reusable for creating other pointer types.
* *
* A key point of this class is also that it allows container * A key point of this class is also that it allows container
* writers to 'assume' Alocator::pointer is a typedef for a normal * writers to 'assume' Allocator::pointer is a typedef for a normal
* pointer. This class supports most of the conventions of a true * pointer. This class supports most of the conventions of a true
* pointer, and can, for instance handle implicit conversion to * pointer, and can, for instance handle implicit conversion to
* const and base class pointer types. The only impositions on * const and base class pointer types. The only impositions on
@ -274,7 +266,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* Allocator::pointer typedef appropriately for pointer types. 2) * Allocator::pointer typedef appropriately for pointer types. 2)
* if you need pointer casting, use the __pointer_cast<> functions * if you need pointer casting, use the __pointer_cast<> functions
* from ext/cast.h. This allows pointer cast operations to be * from ext/cast.h. This allows pointer cast operations to be
* overloaded is necessary by custom pointers. * overloaded as necessary by custom pointers.
* *
* Note: The const qualifier works with this pointer adapter as * Note: The const qualifier works with this pointer adapter as
* follows: * follows:
@ -437,7 +429,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
} \ } \
// END of _CXX_POINTER_ARITH_OPERATOR_SET macro // END of _CXX_POINTER_ARITH_OPERATOR_SET macro
// Expand into the various pointer arithmatic operators needed. // Expand into the various pointer arithmetic operators needed.
_CXX_POINTER_ARITH_OPERATOR_SET(short); _CXX_POINTER_ARITH_OPERATOR_SET(short);
_CXX_POINTER_ARITH_OPERATOR_SET(unsigned short); _CXX_POINTER_ARITH_OPERATOR_SET(unsigned short);
_CXX_POINTER_ARITH_OPERATOR_SET(int); _CXX_POINTER_ARITH_OPERATOR_SET(int);
@ -528,7 +520,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ return __rhs.get() != reinterpret_cast<void*>(__lhs); } { return __rhs.get() != reinterpret_cast<void*>(__lhs); }
/** /**
* Comparison operators for _Pointer_adapter defer to the base class'es * Comparison operators for _Pointer_adapter defer to the base class'
* comparison operators, when possible. * comparison operators, when possible.
*/ */
template<typename _Tp> template<typename _Tp>
@ -600,6 +592,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
public: public:
typedef typename __gnu_cxx::_Pointer_adapter<_Rebound_policy> __type; typedef typename __gnu_cxx::_Pointer_adapter<_Rebound_policy> __type;
}; };
static pointer pointer_to(typename pointer::reference __r) noexcept
{ return pointer(std::addressof(__r)); }
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION