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()13int 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