From bed446e569b815ebb81e8866579a8abcda77358a Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 20 May 2011 00:33:22 +0000 Subject: Make boost dependency optional. Note Raul compiled with --cpp0x is NOT compatible with Raul compiled without it. git-svn-id: http://svn.drobilla.net/lad/trunk/raul@3289 a436a847-0d15-0410-975c-d299462d15a1 --- raul/SharedPtr.hpp | 44 +++++++++++++------------------------------- 1 file changed, 13 insertions(+), 31 deletions(-) (limited to 'raul/SharedPtr.hpp') diff --git a/raul/SharedPtr.hpp b/raul/SharedPtr.hpp index ef4fea8..6b241f8 100644 --- a/raul/SharedPtr.hpp +++ b/raul/SharedPtr.hpp @@ -18,39 +18,21 @@ #ifndef RAUL_SHARED_PTR_HPP #define RAUL_SHARED_PTR_HPP -#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS -#include -#include -#include -#include -#include - -static std::set shared_ptr_counters; - -// Use debug hooks to ensure 2 shared_ptrs never point to the same thing -namespace boost { - inline void sp_scalar_constructor_hook(void* px, std::size_t size, void* pn) { - assert(shared_ptr_counters.find(px) == shared_ptr_counters.end()); - shared_ptr_counters.push_back(px); - } - - inline void sp_scalar_destructor_hook(void* px, std::size_t size, void* pn) { - shared_ptr_counters.remove(px); - } -} -#endif // BOOST_SP_ENABLE_DEBUG_HOOKS - -#include - -#ifdef BOOST_AC_USE_PTHREADS -#error "Boost is using mutexes for shared_ptr reference counting." -#error "This is VERY slow. Please report your platform to d@drobilla.net" -#endif - template void NullDeleter(T* ptr) {} -#define SharedPtr boost::shared_ptr -#define PtrCast boost::dynamic_pointer_cast +#ifdef RAUL_CPP0x +# include +# define SharedPtr std::shared_ptr +# define PtrCast std::dynamic_pointer_cast +#else +# include +# ifdef BOOST_AC_USE_PTHREADS +# error "Boost is using mutexes for shared_ptr reference counting." +# error "This is VERY slow. Please report your platform to d@drobilla.net" +# endif +# define SharedPtr boost::shared_ptr +# define PtrCast boost::dynamic_pointer_cast +#endif #endif // RAUL_SHARED_PTR_HPP -- cgit v1.2.1