• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2018-2021 Antony Polukhin
2 //
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 #include <boost/pfr/tuple_size.hpp>
7 
8 struct X {
XX9     X(int) {}
10 };
11 struct S { X x0; X x1; int x2; X x3; };
12 
main()13 int main() {
14     static_assert(boost::pfr::tuple_size_v<S> == 4, "");
15 
16     struct S5_0 { int x0; int x1; int x2; int x3; X x4; };
17     static_assert(boost::pfr::tuple_size_v<S5_0> == 5, "");
18 
19     struct S5_1 { X x0; int x1; int x2; int x3; int x4; };
20     static_assert(boost::pfr::tuple_size_v<S5_1> == 5, "");
21 
22     struct S5_2 { int x0; int x1; X x2; int x3; int x4; };
23     static_assert(boost::pfr::tuple_size_v<S5_2> == 5, "");
24 
25     struct S5_3 { int x0; int x1; X x2; int x3; X x4; };
26     static_assert(boost::pfr::tuple_size_v<S5_3> == 5, "");
27 
28     struct S5_4 { X x0; X x1; X x2; X x3; X x4; };
29     static_assert(boost::pfr::tuple_size_v<S5_4> == 5, "");
30 
31     struct S6 { X x0; X x1; X x2; X x3; X x4;  X x5;};
32     static_assert(boost::pfr::tuple_size_v<S6> == 6, "");
33 }
34 
35