ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

_ptrs_specialize.h
Go to the documentation of this file.
00001 #ifndef _STLP_PTRS_SPECIALIZE_H
00002 #define _STLP_PTRS_SPECIALIZE_H
00003 
00004 #if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) || \
00005    (defined (_STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) && !defined (_STLP_NO_ARROW_OPERATOR))
00006 #  define _STLP_POINTERS_SPECIALIZE( _TpP )
00007 #  define _STLP_DEFINE_ARROW_OPERATOR  pointer operator->() const { return &(operator*()); }
00008 #else
00009 #  ifndef _STLP_TYPE_TRAITS_H
00010 #    include <stl/type_traits.h>
00011 #  endif
00012 
00013 // the following is a workaround for arrow operator problems
00014 #  if defined  ( _STLP_NO_ARROW_OPERATOR )
00015 // User wants to disable proxy -> operators
00016 #    define _STLP_DEFINE_ARROW_OPERATOR
00017 #  else
00018 // Compiler can handle generic -> operator.
00019 #    if defined (__BORLANDC__)
00020 #      define _STLP_DEFINE_ARROW_OPERATOR  pointer operator->() const { return &(*(*this)); }
00021 #    elif defined(__WATCOMC__)
00022 #      define _STLP_DEFINE_ARROW_OPERATOR pointer operator->() const { reference x = operator*(); return &x; }
00023 #    else
00024 #      define _STLP_DEFINE_ARROW_OPERATOR  pointer operator->() const { return &(operator*()); }
00025 #    endif
00026 #  endif /* _STLP_NO_ARROW_OPERATOR */
00027 
00028 // Important pointers specializations
00029 
00030 #  ifdef _STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
00031 #    define _STLP_TYPE_TRAITS_POD_SPECIALIZE_V(_Type)
00032 #    define _STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type)
00033 #  else
00034 #    define _STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type) _STLP_TEMPLATE_NULL struct __type_traits<_Type> : __type_traits_aux<__true_type> {};
00035 #    define _STLP_TYPE_TRAITS_POD_SPECIALIZE_V(_Type) \
00036 _STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type*) \
00037 _STLP_TYPE_TRAITS_POD_SPECIALIZE(const _Type*) \
00038 _STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type**) \
00039 _STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type* const *) \
00040 _STLP_TYPE_TRAITS_POD_SPECIALIZE(const _Type**) \
00041 _STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type***) \
00042 _STLP_TYPE_TRAITS_POD_SPECIALIZE(const _Type***)
00043 #  endif
00044 
00045 #  define _STLP_POINTERS_SPECIALIZE(_Type) _STLP_TYPE_TRAITS_POD_SPECIALIZE_V(_Type)
00046 
00047 _STLP_BEGIN_NAMESPACE
00048 
00049 #  if !defined ( _STLP_NO_BOOL )
00050 _STLP_POINTERS_SPECIALIZE( bool )
00051 #  endif
00052 _STLP_TYPE_TRAITS_POD_SPECIALIZE_V(void)
00053 #  ifndef _STLP_NO_SIGNED_BUILTINS
00054   _STLP_POINTERS_SPECIALIZE( signed char )
00055 #  endif
00056   _STLP_POINTERS_SPECIALIZE( char )
00057   _STLP_POINTERS_SPECIALIZE( unsigned char )
00058   _STLP_POINTERS_SPECIALIZE( short )
00059   _STLP_POINTERS_SPECIALIZE( unsigned short )
00060   _STLP_POINTERS_SPECIALIZE( int )
00061   _STLP_POINTERS_SPECIALIZE( unsigned int )
00062   _STLP_POINTERS_SPECIALIZE( long )
00063   _STLP_POINTERS_SPECIALIZE( unsigned long )
00064   _STLP_POINTERS_SPECIALIZE( float )
00065   _STLP_POINTERS_SPECIALIZE( double )
00066 #  if !defined ( _STLP_NO_LONG_DOUBLE )
00067   _STLP_POINTERS_SPECIALIZE( long double )
00068 #  endif
00069 #  if defined ( _STLP_LONG_LONG)
00070   _STLP_POINTERS_SPECIALIZE( _STLP_LONG_LONG )
00071   _STLP_POINTERS_SPECIALIZE( unsigned _STLP_LONG_LONG )
00072 #  endif
00073 #  if defined ( _STLP_HAS_WCHAR_T ) && ! defined (_STLP_WCHAR_T_IS_USHORT)
00074   _STLP_POINTERS_SPECIALIZE( wchar_t )
00075 #  endif
00076 
00077 _STLP_END_NAMESPACE
00078 
00079 #  undef _STLP_ARROW_SPECIALIZE
00080 #  undef _STLP_TYPE_TRAITS_POD_SPECIALIZE_V
00081 
00082 #endif
00083 #endif

Generated on Fri May 25 2012 04:27:53 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.