forked from boostorg/smart_ptr
Add more tests; fix errors
This commit is contained in:
@ -766,6 +766,10 @@ public:
|
|||||||
return ti == BOOST_SP_TYPEID(deleter_type)? &reinterpret_cast<char&>(deleter_): 0;
|
return ti == BOOST_SP_TYPEID(deleter_type)? &reinterpret_cast<char&>(deleter_): 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void* get_local_deleter(const sp_typeinfo&) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void* get_untyped_deleter() {
|
void* get_untyped_deleter() {
|
||||||
return &reinterpret_cast<char&>(deleter_);
|
return &reinterpret_cast<char&>(deleter_);
|
||||||
}
|
}
|
||||||
@ -807,6 +811,10 @@ public:
|
|||||||
return ti == BOOST_SP_TYPEID(deleter_type)? &reinterpret_cast<char&>(deleter_): 0;
|
return ti == BOOST_SP_TYPEID(deleter_type)? &reinterpret_cast<char&>(deleter_): 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void* get_local_deleter(const sp_typeinfo&) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void* get_untyped_deleter() {
|
void* get_untyped_deleter() {
|
||||||
return &reinterpret_cast<char&>(deleter_);
|
return &reinterpret_cast<char&>(deleter_);
|
||||||
}
|
}
|
||||||
@ -853,6 +861,10 @@ public:
|
|||||||
return ti == BOOST_SP_TYPEID(deleter_type)? &reinterpret_cast<char&>(deleter_): 0;
|
return ti == BOOST_SP_TYPEID(deleter_type)? &reinterpret_cast<char&>(deleter_): 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void* get_local_deleter(const sp_typeinfo&) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void* get_untyped_deleter() {
|
void* get_untyped_deleter() {
|
||||||
return &reinterpret_cast<char&>(deleter_);
|
return &reinterpret_cast<char&>(deleter_);
|
||||||
}
|
}
|
||||||
@ -898,6 +910,10 @@ public:
|
|||||||
return ti == BOOST_SP_TYPEID(deleter_type)? &reinterpret_cast<char&>(deleter_): 0;
|
return ti == BOOST_SP_TYPEID(deleter_type)? &reinterpret_cast<char&>(deleter_): 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void* get_local_deleter(const sp_typeinfo&) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void* get_untyped_deleter() {
|
void* get_untyped_deleter() {
|
||||||
return &reinterpret_cast<char&>(deleter_);
|
return &reinterpret_cast<char&>(deleter_);
|
||||||
}
|
}
|
||||||
|
@ -70,9 +70,18 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<> class local_sp_deleter<void>
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
template<class D> D * get_local_deleter( local_sp_deleter<D> * p )
|
template<class D> D * get_local_deleter( local_sp_deleter<D> * p )
|
||||||
{
|
{
|
||||||
return &p->deleter();
|
return &p->deleter();
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void * get_local_deleter( local_sp_deleter<void> * /*p*/ )
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
#include <boost/checked_delete.hpp>
|
#include <boost/checked_delete.hpp>
|
||||||
#include <boost/smart_ptr/detail/sp_counted_base.hpp>
|
#include <boost/smart_ptr/detail/sp_counted_base.hpp>
|
||||||
|
#include <boost/core/addressof.hpp>
|
||||||
|
|
||||||
#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)
|
#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)
|
||||||
#include <boost/smart_ptr/detail/quick_allocator.hpp>
|
#include <boost/smart_ptr/detail/quick_allocator.hpp>
|
||||||
@ -54,7 +55,7 @@ namespace detail
|
|||||||
|
|
||||||
template<class D> class local_sp_deleter;
|
template<class D> class local_sp_deleter;
|
||||||
|
|
||||||
template<class D> D * get_local_deleter( D * p )
|
template<class D> D * get_local_deleter( D * /*p*/ )
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -178,7 +179,7 @@ public:
|
|||||||
|
|
||||||
virtual void * get_local_deleter( sp_typeinfo const & ti )
|
virtual void * get_local_deleter( sp_typeinfo const & ti )
|
||||||
{
|
{
|
||||||
return ti == BOOST_SP_TYPEID(D)? boost::detail::get_local_deleter( &reinterpret_cast<char&>( del ) ): 0;
|
return ti == BOOST_SP_TYPEID(D)? boost::detail::get_local_deleter( boost::addressof( del ) ): 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void * get_untyped_deleter()
|
virtual void * get_untyped_deleter()
|
||||||
@ -271,7 +272,7 @@ public:
|
|||||||
|
|
||||||
virtual void * get_local_deleter( sp_typeinfo const & ti )
|
virtual void * get_local_deleter( sp_typeinfo const & ti )
|
||||||
{
|
{
|
||||||
return ti == BOOST_SP_TYPEID(D)? boost::detail::get_local_deleter( &reinterpret_cast<char&>( d_ ) ): 0;
|
return ti == BOOST_SP_TYPEID(D)? boost::detail::get_local_deleter( boost::addressof( d_ ) ): 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void * get_untyped_deleter()
|
virtual void * get_untyped_deleter()
|
||||||
|
@ -28,12 +28,12 @@ template<class T> struct lsp_if_array
|
|||||||
|
|
||||||
template<class T> struct lsp_if_array<T[]>
|
template<class T> struct lsp_if_array<T[]>
|
||||||
{
|
{
|
||||||
typedef boost::local_shared_ptr<T> type;
|
typedef boost::local_shared_ptr<T[]> type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<class T, std::size_t N> struct lsp_if_array<T[N]>
|
template<class T, std::size_t N> struct lsp_if_array<T[N]>
|
||||||
{
|
{
|
||||||
typedef boost::local_shared_ptr<T> type;
|
typedef boost::local_shared_ptr<T[N]> type;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
@ -231,6 +231,9 @@ import testing ;
|
|||||||
|
|
||||||
[ run get_local_deleter_test.cpp ]
|
[ run get_local_deleter_test.cpp ]
|
||||||
[ run get_local_deleter_test2.cpp ]
|
[ run get_local_deleter_test2.cpp ]
|
||||||
|
[ run get_local_deleter_test3.cpp ]
|
||||||
|
[ run get_local_deleter_array_test.cpp ]
|
||||||
|
[ run get_local_deleter_array_test2.cpp ]
|
||||||
|
|
||||||
[ run make_local_shared_test.cpp ]
|
[ run make_local_shared_test.cpp ]
|
||||||
[ run make_local_shared_esft_test.cpp ]
|
[ run make_local_shared_esft_test.cpp ]
|
||||||
|
151
test/get_local_deleter_array_test.cpp
Normal file
151
test/get_local_deleter_array_test.cpp
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
//
|
||||||
|
// get_local_deleter_array_test2.cpp
|
||||||
|
//
|
||||||
|
// Copyright 2002, 2011, 2017 Peter Dimov
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0. (See
|
||||||
|
// accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <boost/smart_ptr/local_shared_ptr.hpp>
|
||||||
|
#include <boost/core/lightweight_test.hpp>
|
||||||
|
|
||||||
|
struct deleter
|
||||||
|
{
|
||||||
|
int data;
|
||||||
|
|
||||||
|
deleter(): data(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void operator()(void *)
|
||||||
|
{
|
||||||
|
BOOST_TEST(data == 17041);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct deleter2
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
struct X
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
{
|
||||||
|
boost::local_shared_ptr<X[]> p;
|
||||||
|
|
||||||
|
BOOST_TEST(boost::get_deleter<void>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<void const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
boost::local_shared_ptr<X[1]> p;
|
||||||
|
|
||||||
|
BOOST_TEST(boost::get_deleter<void>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<void const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
boost::local_shared_ptr<X[]> p(new X[1]);
|
||||||
|
|
||||||
|
BOOST_TEST(boost::get_deleter<void>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<void const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
boost::local_shared_ptr<X[1]> p(new X[1]);
|
||||||
|
|
||||||
|
BOOST_TEST(boost::get_deleter<void>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<void const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
X x[1];
|
||||||
|
boost::local_shared_ptr<X[]> p(x, deleter());
|
||||||
|
|
||||||
|
BOOST_TEST(boost::get_deleter<void>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<void const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
|
||||||
|
|
||||||
|
deleter * q = boost::get_deleter<deleter>(p);
|
||||||
|
|
||||||
|
BOOST_TEST(q != 0);
|
||||||
|
BOOST_TEST(q->data == 0);
|
||||||
|
|
||||||
|
q->data = 17041;
|
||||||
|
|
||||||
|
deleter const * r = boost::get_deleter<deleter const>(p);
|
||||||
|
|
||||||
|
BOOST_TEST(r == q);
|
||||||
|
BOOST_TEST(r->data == 17041);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
X x[1];
|
||||||
|
boost::local_shared_ptr<X[1]> p(x, deleter());
|
||||||
|
|
||||||
|
BOOST_TEST(boost::get_deleter<void>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<void const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
|
||||||
|
|
||||||
|
deleter * q = boost::get_deleter<deleter>(p);
|
||||||
|
|
||||||
|
BOOST_TEST(q != 0);
|
||||||
|
BOOST_TEST(q->data == 0);
|
||||||
|
|
||||||
|
q->data = 17041;
|
||||||
|
|
||||||
|
deleter const * r = boost::get_deleter<deleter const>(p);
|
||||||
|
|
||||||
|
BOOST_TEST(r == q);
|
||||||
|
BOOST_TEST(r->data == 17041);
|
||||||
|
}
|
||||||
|
|
||||||
|
return boost::report_errors();
|
||||||
|
}
|
74
test/get_local_deleter_array_test2.cpp
Normal file
74
test/get_local_deleter_array_test2.cpp
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
//
|
||||||
|
// get_local_deleter_test2.cpp
|
||||||
|
//
|
||||||
|
// Copyright 2002, 2017 Peter Dimov
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0. (See
|
||||||
|
// accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) || defined( BOOST_NO_CXX11_VARIADIC_TEMPLATES )
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <boost/smart_ptr/local_shared_ptr.hpp>
|
||||||
|
#include <boost/smart_ptr/make_local_shared.hpp>
|
||||||
|
#include <boost/core/lightweight_test.hpp>
|
||||||
|
|
||||||
|
struct deleter
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
struct deleter2;
|
||||||
|
|
||||||
|
struct X
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
{
|
||||||
|
boost::local_shared_ptr<X[]> p = boost::make_local_shared<X[]>( 1 );
|
||||||
|
|
||||||
|
BOOST_TEST(boost::get_deleter<void>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<void const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
boost::local_shared_ptr<X[1]> p = boost::make_local_shared<X[1]>();
|
||||||
|
|
||||||
|
BOOST_TEST(boost::get_deleter<void>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<void const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return boost::report_errors();
|
||||||
|
}
|
||||||
|
|
||||||
|
struct deleter2
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
59
test/get_local_deleter_test3.cpp
Normal file
59
test/get_local_deleter_test3.cpp
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
//
|
||||||
|
// get_local_deleter_test3.cpp
|
||||||
|
//
|
||||||
|
// Copyright 2002, 2017 Peter Dimov
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0. (See
|
||||||
|
// accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) || defined( BOOST_NO_CXX11_VARIADIC_TEMPLATES )
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <boost/smart_ptr/local_shared_ptr.hpp>
|
||||||
|
#include <boost/smart_ptr/make_local_shared.hpp>
|
||||||
|
#include <boost/core/lightweight_test.hpp>
|
||||||
|
|
||||||
|
struct deleter
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
struct deleter2;
|
||||||
|
|
||||||
|
struct X
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
{
|
||||||
|
boost::local_shared_ptr<X> p = boost::make_local_shared<X>();
|
||||||
|
|
||||||
|
BOOST_TEST(boost::get_deleter<void>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<void const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<int const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<X const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter const>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
|
||||||
|
BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return boost::report_errors();
|
||||||
|
}
|
||||||
|
|
||||||
|
struct deleter2
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -1929,7 +1929,7 @@ template<class T, class U> static void test_deleter_reset( boost::local_shared_p
|
|||||||
|
|
||||||
boost::shared_ptr<U> p3( p2 );
|
boost::shared_ptr<U> p3( p2 );
|
||||||
|
|
||||||
// BOOST_TEST( boost::get_deleter< deleter<T> >( p3 ) != 0 );
|
BOOST_TEST( boost::get_deleter< deleter<T> >( p3 ) != 0 );
|
||||||
|
|
||||||
p3.reset();
|
p3.reset();
|
||||||
BOOST_TEST( !called );
|
BOOST_TEST( !called );
|
||||||
@ -2010,7 +2010,7 @@ template<class T, class U> static void test_allocator_reset( boost::local_shared
|
|||||||
|
|
||||||
boost::shared_ptr<U> p3( p2 );
|
boost::shared_ptr<U> p3( p2 );
|
||||||
|
|
||||||
// BOOST_TEST( boost::get_deleter< deleter<T> >( p3 ) != 0 );
|
BOOST_TEST( boost::get_deleter< deleter<T> >( p3 ) != 0 );
|
||||||
|
|
||||||
p3.reset();
|
p3.reset();
|
||||||
BOOST_TEST( !called );
|
BOOST_TEST( !called );
|
||||||
|
Reference in New Issue
Block a user