#ifndef __COMMON_SMART_POINTERS_H__ #define __COMMON_SMART_POINTERS_H__ #if 1 //C++0x #include #define SHARED_PTR(T) std::shared_ptr #define WEAK_PTR(T) std::weak_ptr #define MAKE_SHARED(T, ...) std::make_shared(__VA_ARGS__) #define ENABLE_SHARED_FROM_THIS(T) std::enable_shared_from_this #define STATIC_POINTER_CAST(T, ARG) std::static_pointer_cast(ARG) #define DYNAMIC_POINTER_CAST(T, ARG) std::dynamic_pointer_cast(ARG) #else // tr1 #include #define SHARED_PTR(T) std::tr1::shared_ptr #define WEAK_PTR(T) std::tr1::weak_ptr #define MAKE_SHARED(T, ...) std::tr1::shared_ptr(new T(__VA_ARGS__)) #define ENABLE_SHARED_FROM_THIS(T) std::tr1::enable_shared_from_this #define STATIC_POINTER_CAST(T, ARG) std::tr1::static_pointer_cast(ARG) #define DYNAMIC_POINTER_CAST(T, ARG) std::tr1::dynamic_pointer_cast(ARG) #endif #endif