Skip to content

Commit

Permalink
Add sp_is_unbounded_array
Browse files Browse the repository at this point in the history
  • Loading branch information
pdimov committed Oct 6, 2024
1 parent 90fd5a1 commit 7f880bc
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 0 deletions.
10 changes: 10 additions & 0 deletions include/boost/smart_ptr/detail/sp_type_traits.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,16 @@ template<class T, std::size_t N> struct sp_is_bounded_array< T[N] >: std::true_t
{
};

// std::is_unbounded_array (C++20)

template<class T> struct sp_is_unbounded_array: std::false_type
{
};

template<class T> struct sp_is_unbounded_array< T[] >: std::true_type
{
};

} // namespace detail
} // namespace boost

Expand Down
1 change: 1 addition & 0 deletions test/Jamfile
Original file line number Diff line number Diff line change
Expand Up @@ -426,3 +426,4 @@ run sp_unique_ptr_test2.cpp ;
run sp_move_only_deleter.cpp ;

run sp_is_bounded_array_test.cpp ;
run sp_is_unbounded_array_test.cpp ;
27 changes: 27 additions & 0 deletions test/sp_is_unbounded_array_test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Copyright 2024 Peter Dimov
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt

#include <boost/smart_ptr/detail/sp_type_traits.hpp>
#include <boost/core/lightweight_test_trait.hpp>

struct X;

int main()
{
using boost::detail::sp_is_unbounded_array;

BOOST_TEST_TRAIT_FALSE(( sp_is_unbounded_array<void> ));
BOOST_TEST_TRAIT_FALSE(( sp_is_unbounded_array<int> ));
BOOST_TEST_TRAIT_FALSE(( sp_is_unbounded_array<X> ));

BOOST_TEST_TRAIT_TRUE(( sp_is_unbounded_array<int[]> ));
BOOST_TEST_TRAIT_TRUE(( sp_is_unbounded_array<X[]> ));

BOOST_TEST_TRAIT_FALSE(( sp_is_unbounded_array<int[1]> ));
BOOST_TEST_TRAIT_FALSE(( sp_is_unbounded_array<int[7]> ));
BOOST_TEST_TRAIT_FALSE(( sp_is_unbounded_array<X[1]> ));
BOOST_TEST_TRAIT_FALSE(( sp_is_unbounded_array<X[7]> ));

return boost::report_errors();
}

0 comments on commit 7f880bc

Please sign in to comment.