diff --git a/test/Jamfile b/test/Jamfile index e865ac0..52f3931 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -264,3 +264,5 @@ run allocate_local_shared_array_construct_test.cpp ; run local_sp_fn_test.cpp ; run lsp_convertible_test.cpp ; run lsp_convertible_test2.cpp ; + +run make_shared_array_tmp_test.cpp ; diff --git a/test/make_shared_array_tmp_test.cpp b/test/make_shared_array_tmp_test.cpp new file mode 100644 index 0000000..6e776bb --- /dev/null +++ b/test/make_shared_array_tmp_test.cpp @@ -0,0 +1,43 @@ +// make_shared_array_tmp_test.cpp +// +// Copyright 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 +#include + +struct X +{ + static int destroyed; + + ~X() + { + ++destroyed; + } +}; + +int X::destroyed = 0; + +int main() +{ + { + X::destroyed = 0; + + boost::make_shared< X[3] >(); + + BOOST_TEST_EQ( X::destroyed, 3 ); + } + + { + X::destroyed = 0; + + boost::make_shared< X[] >( 3 ); + + BOOST_TEST_EQ( X::destroyed, 3 ); + } + + return boost::report_errors(); +}