From 24757dc35cb0de806588625f4f595a0fc89a7ff8 Mon Sep 17 00:00:00 2001 From: ksherlock Date: Mon, 28 Feb 2011 05:05:13 +0000 Subject: [PATCH] smart pointer macros git-svn-id: https://profuse.googlecode.com/svn/branches/profuse_interim@370 aa027e90-d47c-11dd-86d7-074df07e0730 --- ProFUSE/smart_pointers.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 ProFUSE/smart_pointers.h diff --git a/ProFUSE/smart_pointers.h b/ProFUSE/smart_pointers.h new file mode 100644 index 0000000..6ab4ecd --- /dev/null +++ b/ProFUSE/smart_pointers.h @@ -0,0 +1,35 @@ + +#ifndef __PROFUSE_SMART_POINTERS_H__ +#define __PROFUSE_SMART_POINTERS_H__ + +#ifdef CPP0X +//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