diff --git a/include/boost/scoped_array.hpp b/include/boost/scoped_array.hpp index 6734c5e..070925c 100644 --- a/include/boost/scoped_array.hpp +++ b/include/boost/scoped_array.hpp @@ -13,6 +13,7 @@ // #include +#include #include // in case ptrdiff_t not in std #include // for std::ptrdiff_t @@ -42,17 +43,14 @@ public: ~scoped_array() // never throws { - typedef char type_must_be_complete[sizeof(T)]; - delete [] ptr; + checked_array_delete(ptr); } void reset(T * p = 0) // never throws { - typedef char type_must_be_complete[sizeof(T)]; - if (ptr != p) { - delete [] ptr; + checked_array_delete(ptr); ptr = p; } } diff --git a/include/boost/scoped_ptr.hpp b/include/boost/scoped_ptr.hpp index e2a3ddf..f452f7a 100644 --- a/include/boost/scoped_ptr.hpp +++ b/include/boost/scoped_ptr.hpp @@ -13,6 +13,7 @@ // #include +#include namespace boost { @@ -41,17 +42,14 @@ public: ~scoped_ptr() // never throws { - typedef char type_must_be_complete[sizeof(T)]; - delete ptr; + checked_delete(ptr); } void reset(T * p = 0) // never throws { - typedef char type_must_be_complete[sizeof(T)]; - if (ptr != p) { - delete ptr; + checked_delete(ptr); ptr = p; } }