#include #include using namespace std ; /* //create an index sequence with non-consecutive numbers */ // 1. Base Case: Called when only one argument is left template T print_all(T last) { cout << last << endl; return last; } // 2. Recursive Case: Unpacks the first item and passes the rest forward template void print_all(First first, Rest... rest) { cout << first << ", "; // Recursive call with the remaining parameter pack print_all(rest...); } // Helper to unpack the tuple template void unpack_helper(const Tuple& t, index_sequence object1 ) { print_all( get(t)... ) ; } template void unpack_and_print( const Tuple& tupleObject ) { // Generate indices based on the size of the tuple constexpr auto size = tuple_size_v ; unpack_helper( tupleObject, std::index_sequence< 0,2>{} ) ; } int main() { // auto my_tuple = make_tuple(10, 20, 30, 40 ) ; tuple my_tuple = make_tuple(10, 20, 30, 40 ) ; unpack_and_print( my_tuple ) ; return 0; }