Skip to content

Commit

Permalink
Add array_data_test_cx.cpp
Browse files Browse the repository at this point in the history
pdimov committed Jan 25, 2025

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 66386e8 commit 19f02c7
Showing 2 changed files with 40 additions and 0 deletions.
1 change: 1 addition & 0 deletions test/Jamfile.v2
Original file line number Diff line number Diff line change
@@ -51,6 +51,7 @@ run array_get_test.cpp ;

compile array_init_test_cx.cpp ;
compile array_copy_test_cx.cpp ;
compile array_data_test_cx.cpp ;
compile array_size_test_cx.cpp ;

#
39 changes: 39 additions & 0 deletions test/array_data_test_cx.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// Copyright 2025 Peter Dimov
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt)

#include <boost/array.hpp>
#include <boost/config.hpp>
#include <boost/config/pragma_message.hpp>
#include <boost/config/workaround.hpp>
#include <cstddef>

#if defined(BOOST_NO_CXX11_CONSTEXPR)

BOOST_PRAGMA_MESSAGE("Test skipped because BOOST_NO_CXX11_CONSTEXPR is defined")

#else

#define STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__)

template<class T, std::size_t N> void test1()
{
constexpr boost::array<T, N> a = {};
STATIC_ASSERT( a.data() == a.elems );
}

template<class T> void test2()
{
constexpr boost::array<T, 0> a = {};
STATIC_ASSERT( a.data() == 0 );
}

int main()
{
test1<int, 1>();
test1<int, 7>();

test2<int>();
}

#endif

0 comments on commit 19f02c7

Please sign in to comment.