aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/ext/iotaarray.cc
blob: b259602c42b3c88c0a33f447f23a88214f9f2c12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// { dg-do compile { target c++26 } }

#include <utility>
#include <type_traits>

template<auto N>
void test()
{
  constexpr auto [id0, ...ids] = std::_IotaArray<N>;
  static_assert( std::is_same_v<decltype(id0), const decltype(N)> );
  static_assert( sizeof...(ids) == N - 1 );
  static_assert( (id0 + ... + ids) == N*(N-1)/2 );
}

int main()
{
  test<1>();
  test<4u>();
  test<8ull>();
}