Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef XDISPATCH_SCOPED_PTER_H_
00024 #define XDISPATCH_SCOPED_PTER_H_
00025
00031 #ifndef __XDISPATCH_INDIRECT__
00032 #error "Please #include <xdispatch/dispatch.h> instead of this file directly."
00033 #endif
00034
00035
00036
00037
00038
00039
00040
00041
00042 #if _MSC_VER >= 1600
00043
00044 # include <memory>
00045
00046 __XDISPATCH_BEGIN_NAMESPACE
00047
00048 template < typename _Type >
00049 struct pointer {
00050
00051 typedef ::std::auto_ptr< _Type > unique;
00052 typedef ::std::shared_ptr< _Type > shared;
00053 typedef ::std::weak_ptr< _Type > weak;
00054
00055 };
00056
00057 __XDISPATCH_END_NAMESPACE
00058
00059
00060 #elif _MSC_VER >= 1500
00061
00062 # include <memory>
00063
00064 __XDISPATCH_BEGIN_NAMESPACE
00065
00066 template < typename _Type >
00067 struct pointer {
00068
00069 typedef ::std::auto_ptr< _Type > unique;
00070 typedef ::std::tr1::shared_ptr< _Type > shared;
00071 typedef ::std::tr1::weak_ptr< _Type > weak;
00072
00073 };
00074
00075 __XDISPATCH_END_NAMESPACE
00076
00077
00078 #elif defined __GXX_EXPERIMENTAL_CXX0X_
00079
00080 # include <memory>
00081
00082 __XDISPATCH_BEGIN_NAMESPACE
00083
00084 template < typename _Type >
00085 struct pointer {
00086
00087
00088
00089
00090 typedef ::std::auto_ptr< _Type > unique;
00091 typedef ::std::shared_ptr< _Type > shared;
00092 typedef ::std::weak_ptr< _Type > weak;
00093
00094 };
00095
00096 __XDISPATCH_END_NAMESPACE
00097
00098 #else // all others
00099
00100 # include <memory>
00101 # include <tr1/memory>
00102
00103 __XDISPATCH_BEGIN_NAMESPACE
00104
00105 template < typename _Type >
00106 struct pointer {
00107
00108 typedef ::std::auto_ptr< _Type > unique;
00109 typedef ::std::tr1::shared_ptr< _Type > shared;
00110 typedef ::std::tr1::weak_ptr< _Type > weak;
00111
00112 };
00113
00114 __XDISPATCH_END_NAMESPACE
00115
00116 #endif
00117
00120 #endif
00121