20#ifndef _STLP_POINTERS_SPEC_TOOLS_H
21#define _STLP_POINTERS_SPEC_TOOLS_H
23#ifndef _STLP_TYPE_TRAITS_H
30template <
class _Tp>
struct less;
34template <
class _StorageT,
class _ValueT,
class _BinaryPredicate>
73#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
112 const _Tp*>::_Ret
_Type;
125 volatile _Tp*>::_Ret
_Type;
134 const volatile void*,
138 const volatile _Tp*>::_Ret
_Type;
145#if !defined (__BORLANDC__) || (__BORLANDC__ != 0x560)
165#if !defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
183template <
class _Tp,
class _Compare>
200#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
204template <
class _StorageT,
class _QualifiedStorageT>
205struct _VoidCastTraitsAux {
206 typedef _QualifiedStorageT void_cv_type;
207 typedef _StorageT void_type;
209 static void_type * uncv_ptr(void_cv_type *__ptr)
211 static void_type
const* uncv_cptr(void_cv_type
const*__ptr)
213 static void_type ** uncv_pptr(void_cv_type **__ptr)
215 static void_type & uncv_ref(void_cv_type & __ref)
217 static void_type
const& uncv_cref(void_cv_type
const& __ref)
219 static void_cv_type* cv_ptr(void_type *__ptr)
221 static void_cv_type
const* cv_cptr(void_type
const*__ptr)
223 static void_cv_type ** cv_pptr(void_type **__ptr)
225 static void_cv_type & cv_ref(void_type & __ref)
227 static void_cv_type
const& cv_cref(void_type
const& __ref)
231template <
class _Vo
idCVType>
232struct _VoidCastTraitsAuxBase {
233 typedef _VoidCVType* void_cv_type;
234 typedef void* void_type;
236 static void_type* uncv_ptr(void_cv_type *__ptr)
238 static void_type
const* uncv_cptr(void_cv_type
const*__ptr)
240 static void_type** uncv_pptr(void_cv_type **__ptr)
242 static void_type& uncv_ref(void_cv_type &__ref)
244 static void_type
const& uncv_cref(void_cv_type
const& __ptr)
247 static void_cv_type * cv_ptr(void_type *__ptr)
249 static void_cv_type
const* cv_cptr(void_type
const*__ptr)
251 static void_cv_type ** cv_pptr(void_type **__ptr)
253 static void_cv_type & cv_ref(void_type &__ref)
255 static void_cv_type
const& cv_cref(void_type
const& __ref)
260struct _VoidCastTraitsAux<
void*,
const void*> : _VoidCastTraitsAuxBase<void const>
263struct _VoidCastTraitsAux<
void*,
volatile void*> : _VoidCastTraitsAuxBase<void volatile>
266struct _VoidCastTraitsAux<
void*,
const volatile void*> : _VoidCastTraitsAuxBase<void const volatile>
269template <
class _StorageT,
class _ValueT>
273 typedef _VoidCastTraitsAux<_StorageT, _QualifiedStorageT> cv_traits;
274 typedef typename cv_traits::void_type void_type;
275 typedef typename cv_traits::void_cv_type void_cv_type;
328 template <
class _Tp1>
333#define _STLP_USE_ITERATOR_WRAPPER
335template <
class _StorageT,
class _ValueT,
class _Iterator>
340 typedef typename _IteTraits::iterator_category iterator_category;
341 typedef _StorageT value_type;
342 typedef typename _IteTraits::difference_type difference_type;
344 typedef value_type
const& const_reference;
349 typedef _IteWrapper<_StorageT, _ValueT, _Iterator> _Self;
352 _IteWrapper(_Iterator &__ite) : _M_ite(__ite) {}
354 const_reference
operator*()
const {
return cast_traits::to_storage_type_cref(*_M_ite); }
356 _Self& operator= (_Self
const& __rhs) {
357 _M_ite = __rhs._M_ite;
361 _Self& operator++() {
366 _Self& operator--() {
375 difference_type
operator -(_Self
const& __other)
const
376 {
return _M_ite - __other._M_ite; }
379 {
return _M_ite == __other._M_ite; }
382 {
return _M_ite != __other._M_ite; }
385 {
return _M_ite < __rhs._M_ite; }
391template <
class _Tp,
class _Iterator>
392struct _IteWrapper<_Tp, _Tp, _Iterator>
393{
typedef _Iterator _Ite; };
401template <
class _StorageT,
class _ValueT>
425 template <
class _Tp1>
433template <
class _StorageT,
class _ValueT,
class _UnaryPredicate>
446template <
class _StorageT,
class _ValueT,
class _BinaryPredicate>
455 bool operator () (_StorageT
const& __fst, _StorageT
const& __snd)
const
460 operator _BinaryPredicate()
const
_STLP_INLINE_LOOP _InputIter _Predicate __pred
bool _STLP_CALL operator!=(const allocator< _T1 > &, const allocator< _T2 > &) _STLP_NOTHROW
complex< _Tp > _STLP_CALL operator-(const complex< _Tp > &__z)
complex< _Tp > _STLP_CALL operator*(const _Tp &__x, const complex< _Tp > &__z)
rope< _CharT, _Alloc > & operator+=(rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
#define _STLP_TEMPLATE_NULL
#define __REINTERPRET_CAST(__x, __y)
#define _STLP_MOVE_TO_STD_NAMESPACE
#define __STATIC_CAST(__x, __y)
#define __CONST_CAST(__x, __y)
#define _STLP_BEGIN_NAMESPACE
#define _STLP_END_NAMESPACE
#define _STLP_MOVE_TO_PRIV_NAMESPACE
GLsizei const GLvoid * pointer
_IsSTLportClass< _Compare >::_Ret _STLportLess
__select< is_default_less &&ptr_type, _BinaryPredWrapper< _KeyStorageType, _Tp, _Compare >, _Compare >::_Ret _CompareStorageType
__select< is_default_less, _SType, _Tp >::_Ret _KeyStorageType
_StorageTypeInfo::_Type _SType
_StorageType< _Tp > _StorageTypeInfo
_BinaryPredWrapper(_BinaryPredicate const &__pred)
bool operator()(_StorageT const &__fst, _StorageT const &__snd) const
_BinaryPredicate get_pred() const
_CastTraits< _StorageT, _ValueT > cast_traits
static storage_type * to_storage_type_ptr(value_type *__ptr)
static _Tp1 const & to_storage_type_crefT(_Tp1 const &__ref)
static storage_type const & to_storage_type_cref(value_type const &__ref)
static value_type * to_value_type_ptr(storage_type *__ptr)
static value_type ** to_value_type_pptr(storage_type **__ptr)
static storage_type const * to_storage_type_cptr(value_type const *__ptr)
static storage_type ** to_storage_type_pptr(value_type **__ptr)
static value_type const & to_value_type_cref(storage_type const &__ref)
static value_type & to_value_type_ref(storage_type &__ref)
static value_type const * to_value_type_cptr(storage_type const *__ptr)
_ConstVoidPointerShim(const void *)
_ConstVolatileVoidPointerShim(const volatile void *)
__type_traits< _Tp >::is_POD_type _PODType
@ use_const_volatile_void_ptr
__select<!use_const_volatile_void_ptr, _Tp, typename__select< use_void_ptr, void *, typename__select< use_const_void_ptr, constvoid *, typename__select< use_volatile_void_ptr, volatilevoid *, constvolatilevoid * >::_Ret >::_Ret >::_Ret >::_Ret _QualifiedType
_UnaryPredWrapper(_UnaryPredicate const &__pred)
_CastTraits< _StorageT, _ValueT > cast_traits
bool operator()(_StorageT const &__ref) const
_VolatileVoidPointerShim(volatile void *)
bool operator<(const TKeyDef &t1, const TKeyDef &t2)
bool operator==(const TKeyDef &t1, const TKeyDef &t2)