18 #ifndef RAUL_SHARED_PTR_HPP
19 #define RAUL_SHARED_PTR_HPP
24 #ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
29 static std::list<void*> shared_ptr_counters;
34 inline void sp_scalar_constructor_hook(
void*
object,
unsigned long cnt,
void* ptr) {
35 assert(std::find(shared_ptr_counters.begin(), shared_ptr_counters.end(),
36 (
void*)
object) == shared_ptr_counters.end());
37 shared_ptr_counters.push_back(
object);
42 inline void sp_scalar_destructor_hook(
void*
object,
unsigned long cnt,
void* ptr) {
43 shared_ptr_counters.remove(
object);
49 #endif // BOOST_SP_ENABLE_DEBUG_HOOKS
52 #include <boost/shared_ptr.hpp>
54 #ifdef BOOST_AC_USE_PTHREADS
55 #error "Boost is using mutex locking for pointer reference counting."
56 #error "This is VERY slow. Please report your platform to dave@drobilla.net"
59 #define SharedPtr boost::shared_ptr
60 #define PtrCast boost::dynamic_pointer_cast
62 #endif // RAUL_SHARED_PTR_HPP