diff --git a/.github/workflows/linux.yaml b/.github/workflows/linux.yaml index 5ee5d7daf..5bff25efe 100644 --- a/.github/workflows/linux.yaml +++ b/.github/workflows/linux.yaml @@ -2,7 +2,7 @@ name: linux on: [ push, pull_request ] -env: +env: VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" jobs: @@ -15,32 +15,45 @@ jobs: compiler-version: [11, 12, 13, 14, 16, 17, 18] cxx: [20, 23] exclude: - - compiler: gcc + - compiler: gcc compiler-version: 16 - - compiler: gcc + - compiler: gcc compiler-version: 17 - - compiler: gcc + - compiler: gcc compiler-version: 18 - compiler: llvm compiler-version: 11 - - compiler: llvm + - compiler: llvm compiler-version: 12 - - compiler: llvm + - compiler: llvm compiler-version: 13 - - compiler: llvm + - compiler: llvm compiler-version: 14 - compiler: gcc compiler-version: 11 - cxx: 23 + cxx: 23 - compiler: gcc compiler-version: 12 - cxx: 23 - - compiler: llvm + cxx: 23 + - compiler: llvm compiler-version: 16 - cxx: 23 + cxx: 23 - compiler: llvm compiler-version: 17 - cxx: 23 + cxx: 23 + - compiler: llvm + cxx: 23 + format: "CBOR" + - compiler: llvm + cxx: 23 + format: "UBJSON" + - compiler: llvm + cxx: 23 + format: "benchmarks" + - compiler: llvm + cxx: 23 + format: "headers" + # TODO: Include reflection runners, once gcc-16 is in the repo. name: "${{ github.job }} (${{ matrix.format }}-C++${{ matrix.cxx }}-${{ matrix.compiler }}-${{ matrix.compiler-version }})" concurrency: group: "linux-${{ github.ref }}-${{ github.job }}-${{ matrix.format }}-C++${{ matrix.cxx }}-${{ matrix.compiler }}-${{ matrix.compiler-version }}" @@ -64,7 +77,11 @@ jobs: run: | sudo apt update if [[ "${{ matrix.compiler-version }}" == 11 ]]; then - sudo apt install -y ninja-build g++-11 + sudo apt install -y ninja-build g++-11 + elif [[ "${{ matrix.compiler }}" == "gcc" && "${{ matrix.compiler-version }}" == 16 ]]; then + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test + sudo apt update + sudo apt install -y ninja-build g++-16 else sudo apt install -y ninja-build fi @@ -78,25 +95,29 @@ jobs: export CXX=g++-${{ matrix.compiler-version }} fi $CXX --version + EXTRA_CMAKE_FLAGS="" + if [[ "${{ matrix.reflection }}" == "on" ]]; then + EXTRA_CMAKE_FLAGS="-DREFLECTCPP_USE_CPP26_REFLECTION=ON -DCMAKE_CXX_FLAGS=-freflection" + fi if [[ "${{ matrix.format }}" == "JSON" ]]; then - cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release + cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DREFLECTCPP_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release $EXTRA_CMAKE_FLAGS elif [[ "${{ matrix.format }}" == "benchmarks" ]]; then - cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_BENCHMARKS=ON -DREFLECTCPP_ALL_FORMATS=ON -DCMAKE_BUILD_TYPE=Release + cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DREFLECTCPP_BUILD_BENCHMARKS=ON -DREFLECTCPP_ALL_FORMATS=ON -DCMAKE_BUILD_TYPE=Release $EXTRA_CMAKE_FLAGS elif [[ "${{ matrix.format }}" == "headers" ]]; then - cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_CHECK_HEADERS=ON -DCMAKE_BUILD_TYPE=Release + cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DREFLECTCPP_CHECK_HEADERS=ON -DCMAKE_BUILD_TYPE=Release $EXTRA_CMAKE_FLAGS else - cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DREFLECTCPP_JSON=OFF -DREFLECTCPP_${{ matrix.format }}=ON -DCMAKE_BUILD_TYPE=Release + cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DREFLECTCPP_BUILD_TESTS=ON -DREFLECTCPP_JSON=OFF -DREFLECTCPP_${{ matrix.format }}=ON -DCMAKE_BUILD_TYPE=Release $EXTRA_CMAKE_FLAGS fi cmake --build build -j4 - name: Run tests if: (matrix.format != 'benchmarks') && (matrix.format != 'headers') run: | ctest --test-dir build --output-on-failure - - name: Run benchmarks - if: matrix.format == 'benchmarks' + - name: Run benchmarks + if: matrix.format == 'benchmarks' run: | - echo '# Benchmarks' >> $GITHUB_STEP_SUMMARY - echo '## Benchmarks across different formats' >> $GITHUB_STEP_SUMMARY + echo '# Benchmarks' >> $GITHUB_STEP_SUMMARY + echo '## Benchmarks across different formats' >> $GITHUB_STEP_SUMMARY echo '```' >> $GITHUB_STEP_SUMMARY ./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=canada_read >> $GITHUB_STEP_SUMMARY ./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=canada_write >> $GITHUB_STEP_SUMMARY @@ -105,7 +126,7 @@ jobs: ./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=person_read >> $GITHUB_STEP_SUMMARY ./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=person_write >> $GITHUB_STEP_SUMMARY echo '```' >> $GITHUB_STEP_SUMMARY - echo '## Benchmarks for JSON' >> $GITHUB_STEP_SUMMARY + echo '## Benchmarks for JSON' >> $GITHUB_STEP_SUMMARY echo '```' >> $GITHUB_STEP_SUMMARY ./build/benchmarks/json/reflect-cpp-json-benchmarks --benchmark_filter=person_read >> $GITHUB_STEP_SUMMARY ./build/benchmarks/json/reflect-cpp-json-benchmarks --benchmark_filter=canada >> $GITHUB_STEP_SUMMARY diff --git a/CMakeLists.txt b/CMakeLists.txt index 80fb7d2e7..acb80aa7e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,9 +30,14 @@ option(REFLECTCPP_CHECK_HEADERS "Make sure that all headers are self-contained" option(REFLECTCPP_USE_BUNDLED_DEPENDENCIES "Use the bundled dependencies" ON) +option(REFLECTCPP_USE_CPP26_REFLECTION "Use standard C++ reflection (requires C++-26)" OFF) option(REFLECTCPP_USE_STD_EXPECTED "Use std::expected instead of the built-in Result type (requires C++-23)" OFF) -if(REFLECTCPP_USE_STD_EXPECTED) +if(REFLECTCPP_USE_CPP26_REFLECTION) + if(NOT DEFINED CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 26) + endif() +elseif(REFLECTCPP_USE_STD_EXPECTED) if(NOT DEFINED CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 23) endif() @@ -229,6 +234,10 @@ if(REFLECTCPP_BUILD_SHARED) target_compile_definitions(reflectcpp PUBLIC RFL_BUILD_SHARED) endif() +if(REFLECTCPP_USE_CPP26_REFLECTION) + target_compile_definitions(reflectcpp PUBLIC REFLECTCPP_USE_CPP26_REFLECTION) +endif() + if(REFLECTCPP_USE_STD_EXPECTED) target_compile_definitions(reflectcpp PUBLIC REFLECTCPP_USE_STD_EXPECTED) endif() diff --git a/README.md b/README.md index ef797cd82..cfa61dbe6 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,9 @@ ![image](banner1.png) -**reflect-cpp** is a C++-20 library for **fast serialization, deserialization and validation** using reflection, similar to [pydantic](https://github.com/pydantic/pydantic) in Python, [serde](https://github.com/serde-rs) in Rust, [encoding](https://github.com/golang/go/tree/master/src/encoding) in Go or [aeson](https://github.com/haskell/aeson/tree/master) in Haskell. +**reflect-cpp** is a C++-20/C++-26 library for **fast serialization, deserialization and validation** using reflection, similar to [pydantic](https://github.com/pydantic/pydantic) in Python, [serde](https://github.com/serde-rs) in Rust, [encoding](https://github.com/golang/go/tree/master/src/encoding) in Go or [aeson](https://github.com/haskell/aeson/tree/master) in Haskell. + +reflect-cpp supports C++-26 reflection, but most of the functionality is also available in C++-20, except where explicitly noted otherwise. Moreover, reflect-cpp is the basis for [sqlgen](https://github.com/getml/sqlgen), a **modern, type-safe ORM and SQL query generator** for C++20, inspired by Python's SQLAlchemy/SQLModel and Rust's Diesel. It provides a fluent, composable interface for database operations with compile-time type checking and SQL injection protection. @@ -51,6 +53,7 @@ reflect-cpp and sqlgen fill important gaps in C++ development. They reduce boile ### More in our [documentation](https://rfl.getml.com): - [Installation ↗](https://rfl.getml.com/install/#option-2-compilation-using-cmake) + - [C++26 reflection ↗](https://rfl.getml.com/cpp26_reflection) - [Benchmarks ↗](https://rfl.getml.com/benchmarks) - [How to contribute ↗](https://rfl.getml.com/contributing) - [Compiling and running the tests ↗](https://rfl.getml.com/contributing/#compiling-and-running-the-tests) @@ -62,17 +65,17 @@ reflect-cpp provides a unified reflection-based interface across different seria The following table lists the serialization formats currently supported by reflect-cpp and the underlying libraries used: -| Format | Library | Version | License | Remarks | -|--------------|------------------------------------------------------|--------------|------------| -----------------------------------------------------| -| JSON | [yyjson](https://github.com/ibireme/yyjson) | >= 0.8.0 | MIT | out-of-the-box support, included in this repository | -| Avro | [avro-c](https://avro.apache.org/docs/1.11.1/api/c/) | >= 1.11.3 | Apache 2.0 | Schemaful binary format | +| Format | Library | Version | License | Remarks | +|---------------------|------------------------------------------------------|--------------|------------| -----------------------------------------------------| +| JSON | [yyjson](https://github.com/ibireme/yyjson) | >= 0.8.0 | MIT | out-of-the-box support, included in this repository | +| Avro | [avro-c](https://avro.apache.org/docs/1.11.1/api/c/) | >= 1.11.3 | Apache 2.0 | Schemaful binary format | | Boost.Serialization | [Boost.Serialization](https://www.boost.org/doc/libs/release/libs/serialization/) | >= 1.74.0 | BSL 1.0 | Streaming binary format with archive interop | -| BSON | [libbson](https://github.com/mongodb/mongo-c-driver) | >= 1.25.1 | Apache 2.0 | JSON-like binary format | -| Cap'n Proto | [capnproto](https://capnproto.org) | >= 1.0.2 | MIT | Schemaful binary format | -| CBOR | [jsoncons](https://github.com/danielaparker/jsoncons)| >= 0.176.0 | BSL 1.0 | JSON-like binary format | -| cli | *(none)* | *(none)* | MIT | Command line interface | -| env | *(none)* | *(none)* | MIT | Environment variables | -| Cereal | [Cereal](https://uscilab.github.io/cereal/) | >= 1.3.2 | BSD | C++ serialization library with multiple formats | +| BSON | [libbson](https://github.com/mongodb/mongo-c-driver) | >= 1.25.1 | Apache 2.0 | JSON-like binary format | +| Cap'n Proto | [capnproto](https://capnproto.org) | >= 1.0.2 | MIT | Schemaful binary format | +| CBOR | [jsoncons](https://github.com/danielaparker/jsoncons)| >= 0.176.0 | BSL 1.0 | JSON-like binary format | +| cli | *(none)* | *(none)* | MIT | Command line interface | +| env | *(none)* | *(none)* | MIT | Environment variables | +| Cereal | [Cereal](https://uscilab.github.io/cereal/) | >= 1.3.2 | BSD | C++ serialization library with multiple formats | | CSV | [Apache Arrow](https://arrow.apache.org/) | >= 21.0.0 | Apache 2.0 | Tabular textual format | | flexbuffers | [flatbuffers](https://github.com/google/flatbuffers) | >= 23.5.26 | Apache 2.0 | Schema-less version of flatbuffers, binary format | | msgpack | [msgpack-c](https://github.com/msgpack/msgpack-c) | >= 6.0.0 | BSL 1.0 | JSON-like binary format | @@ -666,11 +669,29 @@ Finally, it is very easy to extend full support to your own classes, refer to th ## Installation -The following compilers are supported: +The following compilers are supported for C++-20: - GCC 11.4 or higher - Clang 14.0 or higher - MSVC 17.8 (19.38) or higher +The following compilers are supported for C++-26: +- GCC 16.2 or higher + +### Compiling with C++-26 reflection + +To compile reflect-cpp using the standard C++ reflection facilities, pass the CMake option +`REFLECTCPP_USE_CPP26_REFLECTION` together with the compiler flag that activates reflection +support in your compiler (`-freflection` for GCC, `-freflection-latest` for Clang): + +```bash +cmake -S . -B build -DCMAKE_CXX_STANDARD=26 -DCMAKE_BUILD_TYPE=Release -DREFLECTCPP_USE_CPP26_REFLECTION=ON -DCMAKE_CXX_FLAGS="-freflection" +cmake --build build -j 4 +``` + +With C++-26 reflection, fixed-size C arrays and inheritance are supported out of the box (no +`-DREFLECT_CPP_C_ARRAYS_OR_INHERITANCE` flag needed), and there are no range restrictions for +enums. Refer to the [documentation](https://rfl.getml.com/cpp26_reflection) for details. + ### Using vcpkg https://vcpkg.io/en/package/reflectcpp diff --git a/benchmarks/json/person.cpp b/benchmarks/json/person.cpp index 424bbb499..239cea04b 100644 --- a/benchmarks/json/person.cpp +++ b/benchmarks/json/person.cpp @@ -157,7 +157,7 @@ rfl::Result> yyjson_to_children(yyjson_val *_val) { while ((val = yyjson_arr_iter_next(&iter))) { auto r = yyjson_to_person(val); if (!r) { - return error(r.error()); + return rfl::error(r.error()); } children.emplace_back(std::move(*r)); } @@ -220,7 +220,7 @@ rfl::Result yyjson_to_person(yyjson_val *_val) { for (const auto &err : errors) { std::cout << err.what() << std::endl; } - return error(errors[0]); + return rfl::error(errors[0]); } return person; } diff --git a/docs/c_arrays_and_inheritance.md b/docs/c_arrays_and_inheritance.md index 5622d601c..ed347f6d3 100644 --- a/docs/c_arrays_and_inheritance.md +++ b/docs/c_arrays_and_inheritance.md @@ -12,6 +12,13 @@ inheritance altogether. Note that C arrays are not the same thing as `std::array`. `std::array` is always supported and is the recommended alternative. +!!! note "C++-26 reflection" + + If you compile reflect-cpp with C++-26 reflection (see [C++26 reflection](cpp26_reflection.md)), + then none of the restrictions in this section apply: fixed-size C arrays and inheritance are + supported out of the box, no flag is required, and the fields may be spread out over + multiple structs. + If you want support for these, you will have to pass the flag `-D REFLECT_CPP_C_ARRAYS_OR_INHERITANCE` during compilation. @@ -85,6 +92,10 @@ struct Derived : Base { }; ``` +Note that this restriction does not apply when compiling with C++-26 reflection: with C++-26, +the fields of the base class and the fields of the derived class are combined automatically, +so the example above works as well. + The recommended alternative is to simply use `rfl::Flatten`, which has no such limitation: diff --git a/docs/cpp26_reflection.md b/docs/cpp26_reflection.md new file mode 100644 index 000000000..496df7921 --- /dev/null +++ b/docs/cpp26_reflection.md @@ -0,0 +1,126 @@ +# C++26 reflection + +reflect-cpp can be compiled in two modes, which use two different reflection implementations: + +* **C++-20/23 mode (the default):** reflection is implemented using metaprogramming + techniques (structured bindings, aggregate-initialization analysis, and + [enchantum](https://github.com/ZXShady/enchantum)). This works on a wide range of + compilers, but it has some limitations and comes with a higher compile-time cost. +* **C++-26 mode:** reflection uses the standard C++ reflection facilities + (``, [P2996](https://wg21.link/P2996)). This is more powerful, because members + and enumerators are queried directly from the compiler instead of being inferred. + +C++-26 mode is opt-in. It requires a compiler that supports the C++ reflection proposal +and a compiler flag to activate it. The rest of this documentation applies to both modes, +except where explicitly noted otherwise. + +## Compiling with C++-26 reflection + +The following compilers are supported for C++-26: + +* GCC 16.2 or higher +* Clang: experimental, only available in Clang builds that implement + [P2996](https://wg21.link/P2996) (such as Bloomberg's + [clang-p2996](https://github.com/bloomberg/clang-p2996) fork) + +To compile reflect-cpp with C++-26 reflection, pass the CMake option +`REFLECTCPP_USE_CPP26_REFLECTION` and the compiler flag that activates reflection +support in your compiler: + +* GCC: `-freflection` +* Clang: `-freflection-latest` + +For example, using cmake: + +```bash +cmake -S . -B build -DCMAKE_CXX_STANDARD=26 -DCMAKE_BUILD_TYPE=Release -DREFLECTCPP_USE_CPP26_REFLECTION=ON -DCMAKE_CXX_FLAGS="-freflection" +cmake --build build -j 4 +``` + +The individual parts: + +* `-DREFLECTCPP_USE_CPP26_REFLECTION=ON` switches reflect-cpp to the C++-26 reflection + implementation and defines the macro `REFLECTCPP_USE_CPP26_REFLECTION`. If + `CMAKE_CXX_STANDARD` is not set, it will be set to 26 automatically. +* `-DCMAKE_CXX_STANDARD=26` sets the C++ standard to 26. +* `-DCMAKE_CXX_FLAGS="-freflection"` activates the C++ reflection facilities in the + compiler itself. Use `-freflection-latest` on Clang instead. + +When compiling with C++-26 reflection, the option `REFLECTCPP_USE_STD_EXPECTED` is +enabled by default as well, which means that `rfl::Result` is an alias for +`std::expected`. If you want to keep using the built-in `rfl::Result` +type, pass `-DREFLECTCPP_USE_STD_EXPECTED=OFF`. + +If you include the source files directly into your own build (see +[Installation](install.md#option-4-include-source-files-into-your-own-build)), add the +compile definition `-DREFLECTCPP_USE_CPP26_REFLECTION` and the appropriate compiler flag +to all translation units that include reflect-cpp. + +## What C++-26 reflection changes + +### C arrays and inheritance are supported out of the box + +In C++-20/23 mode, fixed-size C arrays and inheritance are only supported when you pass +the flag `-DREFLECT_CPP_C_ARRAYS_OR_INHERITANCE`, and inheritance only works when all of +the fields are inside the same struct. Refer to +[C arrays and inheritance](c_arrays_and_inheritance.md) for details. + +In C++-26 mode, neither restriction applies: + +* Fixed-size C arrays are regular fields as far as the compiler's reflection is concerned, + so they work without any flag. +* The fields of base classes are combined with the fields of the derived class, so the + fields may be spread out over multiple structs. + +For example, this is not supported in C++-20/23 mode, but works as-is in C++-26 mode: + +```cpp +struct Base { + int x; +}; + +struct Derived : Base { + int y; +}; + +const auto derived = Derived{1, 2}; + +rfl::json::write(derived); +``` + +This results in the following JSON string: + +```json +{"x":1,"y":2} +``` + +### No range restrictions for enums + +In C++-20/23 mode, enum values must be in the range `[RFL_ENUM_RANGE_MIN, +RFL_ENUM_RANGE_MAX]`, where the default range is `[-256, 256]`. Refer to +[Enums](enums.md) for details. + +In C++-26 mode, the enumerators are read directly from the compiler, so there is no +restriction on the range of enum values, and `RFL_ENUM_RANGE_MIN` and `RFL_ENUM_RANGE_MAX` +are not needed. + +### Lower compile-time cost + +In C++-20/23 mode, reflect-cpp infers the fields of a struct by figuring out how the +struct can be constructed. This requires a lot of compile-time work, especially in the +presence of C arrays and inheritance. In C++-26 mode, the fields and enumerators are +queried directly from the compiler's reflection information, which is considerably +cheaper. + +## Summary + +| Feature | C++-20/23 | C++-26 | +|---------|-----------|--------| +| Supported compilers | GCC 11.4+, Clang 14.0+, MSVC 17.8+ | GCC 16.2+ (Clang: experimental) | +| Compiler flag | *(none)* | `-freflection` (GCC), `-freflection-latest` (Clang) | +| CMake option | *(none)* | `-DREFLECTCPP_USE_CPP26_REFLECTION=ON` | +| Fixed-size C arrays | requires `-DREFLECT_CPP_C_ARRAYS_OR_INHERITANCE` | supported out of the box | +| Inheritance | requires `-DREFLECT_CPP_C_ARRAYS_OR_INHERITANCE`, fields must be in a single struct | supported out of the box, fields may be spread over multiple structs | +| Enum value range | restricted to `[RFL_ENUM_RANGE_MIN, RFL_ENUM_RANGE_MAX]` (default `[-256, 256]`) | no restriction | +| `rfl::Result` | built-in type (or `std::expected` via `-DREFLECTCPP_USE_STD_EXPECTED`) | `std::expected` by default | +| Compile time | higher | lower | diff --git a/docs/enums.md b/docs/enums.md index b2280f0ac..849b24889 100644 --- a/docs/enums.md +++ b/docs/enums.md @@ -46,6 +46,13 @@ However, some limitations apply: 2. Enum values must be in the range `[RFL_ENUM_RANGE_MIN, RFL_ENUM_RANGE_MAX]`. If the range is not specified, the default range is `[-256, 256]`. + !!! note "C++-26 reflection" + + This restriction only applies when compiling reflect-cpp with C++-20 or C++-23. When + compiling with [C++-26 reflection](cpp26_reflection.md), the enumerators are read + directly from the compiler, so there is no restriction on the range of enum values, + and `RFL_ENUM_RANGE_MIN` and `RFL_ENUM_RANGE_MAX` are not needed. + - You can specify a custom range for the all enum values by defining `RFL_ENUM_RANGE_MIN` and `RFL_ENUM_RANGE_MAX` before including the reflect-cpp header: diff --git a/docs/install.md b/docs/install.md index cb1af5a09..4c7f1b30c 100644 --- a/docs/install.md +++ b/docs/install.md @@ -5,13 +5,44 @@ hide: # Installation -The following compilers are supported: +The following compilers are supported for C++-20: - GCC 11.4 or higher - Clang 14.0 or higher - MSVC 17.8 (19.38) or higher +The following compilers are supported for C++-26: +- GCC 16.2 or higher + You can include the source files into your build or compile it using cmake and vcpkg. +## Compiling with C++-26 reflection + +By default, reflect-cpp uses a C++-20 compatible reflection implementation, which works +across a wide range of compilers. If you want to use the standard C++ reflection +facilities (``, [P2996](https://wg21.link/P2996)), you can compile reflect-cpp in +C++-26 mode instead. This is more powerful: fixed-size C arrays and inheritance are +supported out of the box, and there are no range restrictions for enums. Refer to +[C++26 reflection](cpp26_reflection.md) for details. + +To enable C++-26 reflection, pass the CMake option `REFLECTCPP_USE_CPP26_REFLECTION` and +the compiler flag that activates reflection support in your compiler: + +* GCC: `-freflection` +* Clang: `-freflection-latest` (experimental, only available in Clang builds that + implement [P2996](https://wg21.link/P2996), such as Bloomberg's + [clang-p2996](https://github.com/bloomberg/clang-p2996) fork) + +For example, using cmake: + +```bash +cmake -S . -B build -DCMAKE_CXX_STANDARD=26 -DCMAKE_BUILD_TYPE=Release -DREFLECTCPP_USE_CPP26_REFLECTION=ON -DCMAKE_CXX_FLAGS="-freflection" +cmake --build build -j 4 +``` + +If you include the source files into your own build (see Option 4 below), also add the +compile definition `-DREFLECTCPP_USE_CPP26_REFLECTION` and the appropriate compiler flag +to all translation units that include reflect-cpp. + ## Option 1: Using vcpkg Refer to [this port](https://vcpkg.link/ports/reflectcpp): diff --git a/include/rfl.hpp b/include/rfl.hpp index 9e0d0f5d2..47789a4e8 100644 --- a/include/rfl.hpp +++ b/include/rfl.hpp @@ -74,10 +74,12 @@ #include "rfl/from_generic.hpp" #include "rfl/from_named_tuple.hpp" #include "rfl/get.hpp" +#include "rfl/make_field.hpp" #include "rfl/make_from_tuple.hpp" #include "rfl/make_named_tuple.hpp" #include "rfl/name_t.hpp" #include "rfl/named_tuple_t.hpp" +#include "rfl/num_fields.hpp" #include "rfl/parsing/CustomParser.hpp" #include "rfl/patterns.hpp" #include "rfl/remove_fields.hpp" diff --git a/include/rfl/Field.hpp b/include/rfl/Field.hpp index 9ea272742..a725986c5 100644 --- a/include/rfl/Field.hpp +++ b/include/rfl/Field.hpp @@ -7,15 +7,15 @@ #include "Literal.hpp" #include "default.hpp" -#include "internal/Array.hpp" #include "internal/StringLiteral.hpp" #include "internal/wrap_in_rfl_array_t.hpp" namespace rfl { /// Used to define a field in the NamedTuple with a compile-time name. -/// A Field associates a compile-time string literal name with a value of type T. -/// This is the building block for creating named tuples and structured data with reflection. +/// A Field associates a compile-time string literal name with a value of type +/// T. This is the building block for creating named tuples and structured data +/// with reflection. /// @tparam _name The compile-time string literal name of the field /// @tparam T The type of the value stored in the field template @@ -206,16 +206,6 @@ struct Field { Type value_; }; -template -inline auto make_field(T&& _value) { - using T0 = std::remove_cvref_t; - if constexpr (std::is_array_v) { - return Field<_name, T0>(internal::Array(std::forward(_value))); - } else { - return Field<_name, T0>(std::forward(_value)); - } -} - } // namespace rfl #endif // RFL_FIELD_HPP_ diff --git a/include/rfl/Literal.hpp b/include/rfl/Literal.hpp index 76ae756e1..4208d7713 100644 --- a/include/rfl/Literal.hpp +++ b/include/rfl/Literal.hpp @@ -47,12 +47,12 @@ class Literal { /// Copy constructor - constructs a Literal from another literal with the same /// fields. /// @param _other The literal to copy from - Literal(const Literal& _other) = default; + constexpr Literal(const Literal& _other) = default; /// Move constructor - constructs a Literal from another literal with the same /// fields. /// @param _other The literal to move from - Literal(Literal&& _other) noexcept = default; + constexpr Literal(Literal&& _other) noexcept = default; /// Constructs a Literal from a string value. /// @param _str The string representing one of the literal's allowed values @@ -61,7 +61,7 @@ class Literal { Literal(const std::string& _str) : value_(find_value(_str).value()) {} /// Default constructor - initializes to the first value (index 0). - Literal() : value_(0) {} + constexpr Literal() : value_(0) {} /// Destructor. ~Literal() = default; @@ -87,7 +87,7 @@ class Literal { /// @tparam _value The index of the value (must be less than num_fields_) /// @return A Literal representing the value at the specified index template - static Literal from_value() { + static constexpr Literal from_value() { static_assert(_value < num_fields_, "Value cannot exceed number of fields."); return Literal(_value); diff --git a/include/rfl/NamedTuple.hpp b/include/rfl/NamedTuple.hpp index ccb6e5975..381fe8811 100644 --- a/include/rfl/NamedTuple.hpp +++ b/include/rfl/NamedTuple.hpp @@ -14,6 +14,7 @@ #include "internal/StringLiteral.hpp" #include "internal/find_index.hpp" #include "internal/is_extra_fields.hpp" +#include "make_field.hpp" #include "make_from_tuple.hpp" #include "tuple_cat.hpp" diff --git a/include/rfl/Ref.hpp b/include/rfl/Ref.hpp index 296ff33ce..1febd5110 100644 --- a/include/rfl/Ref.hpp +++ b/include/rfl/Ref.hpp @@ -8,26 +8,30 @@ namespace rfl { -/// A smart pointer wrapper that is guaranteed to always contain a valid object with shared ownership. -/// The Ref class behaves very similarly to shared_ptr, but unlike shared_ptr, -/// it is 100% guaranteed to be filled at all times (unless the user -/// tries to access it after calling std::move or does something else that is -/// clearly bad practice). +/// A smart pointer wrapper that is guaranteed to always contain a valid object +/// with shared ownership. The Ref class behaves very similarly to shared_ptr, +/// but unlike shared_ptr, it is 100% guaranteed to be filled at all times +/// (unless the user tries to access it after calling std::move or does +/// something else that is clearly bad practice). /// @tparam T The type of object to contain template class Ref { public: - /// The default way of creating new references is Ref::make(...) or make_ref(...). - /// Constructs a new Ref with the given arguments forwarded to T's constructor. + /// The default way of creating new references is Ref::make(...) or + /// make_ref(...). Constructs a new Ref with the given arguments forwarded + /// to T's constructor. /// @tparam Args Types of constructor arguments /// @param _args Arguments to forward to T's constructor /// @return A new Ref containing the constructed object template static Ref make(Args&&... _args) { - return Ref(std::make_shared(std::forward(_args)...)); + // Necessary workaround to avoid false positive warning. + auto raw = new T(std::forward(_args)...); + return Ref(std::shared_ptr(raw)); } - /// Creates a Ref from a shared_ptr (move version), returns an Error if the shared_ptr is null. + /// Creates a Ref from a shared_ptr (move version), returns an Error if the + /// shared_ptr is null. /// @param _ptr The shared_ptr to convert to a Ref /// @return Result containing the Ref or an error if _ptr is nullptr static Result> make(std::shared_ptr&& _ptr) { @@ -37,7 +41,8 @@ class Ref { return Ref(std::move(_ptr)); } - /// Creates a Ref from a shared_ptr (copy version), returns an Error if the shared_ptr is null. + /// Creates a Ref from a shared_ptr (copy version), returns an Error if the + /// shared_ptr is null. /// @param _ptr The shared_ptr to convert to a Ref /// @return Result containing the Ref or an error if _ptr is nullptr static Result> make(const std::shared_ptr& _ptr) { @@ -90,7 +95,8 @@ class Ref { /// @return Pointer to the contained object T* operator->() { return ptr_.get(); } - /// Arrow operator (const) - provides access to the underlying object's members. + /// Arrow operator (const) - provides access to the underlying object's + /// members. /// @return Const pointer to the contained object T* operator->() const { return ptr_.get(); } diff --git a/include/rfl/Result.hpp b/include/rfl/Result.hpp index 38e0c067b..c74c91cc6 100644 --- a/include/rfl/Result.hpp +++ b/include/rfl/Result.hpp @@ -3,63 +3,15 @@ #ifdef REFLECTCPP_USE_STD_EXPECTED #include +#else +#include "internal/cpp20/Result.hpp" #endif -#include -#include -#include -#include -#include -#include +#include "internal/Error.hpp" namespace rfl { -/// Defines the error class to be returned when something went wrong. -/// This is used throughout reflect-cpp for error handling. -class Error { - public: - /// Default constructor - creates an empty error. - Error() = default; - - /// Constructs an error with a message (copy). - /// @param _what The error message describing what went wrong - Error(const std::string& _what) : what_(_what) {} - - /// Constructs an error with a message (move). - /// @param _what The error message describing what went wrong (will be moved) - Error(std::string&& _what) : what_(std::move(_what)) {} - - /// Destructor. - ~Error() = default; - - /// Copy constructor. - /// @param e The error to copy from - Error(const Error& e) = default; - - /// Move constructor. - /// @param e The error to move from - Error(Error&& e) noexcept = default; - - /// Copy assignment operator. - /// @param _other The error to copy from - /// @return Reference to this error - Error& operator=(const Error& _other) = default; - - /// Move assignment operator. - /// @param _other The error to move from - /// @return Reference to this error - Error& operator=(Error&& _other) noexcept = default; - - /// Returns the error message, equivalent to .what() in std::exception. - const std::string& what() const& { return what_; } - /// Moves the error message out of Error object and leaves what_ in a moved - /// from state - std::string what() && { return std::move(what_); } - - private: - /// Documents what went wrong - std::string what_; -}; +using Error = rfl::internal::Error; /// To be returned when there is nothing to return, but there might be an error. struct Nothing {}; @@ -77,675 +29,10 @@ using Result = std::expected; #else // REFLECTCPP_USE_STD_EXPECTED template -struct Unexpected { - /// Constructs an Unexpected object with the given error (perfect forwarding). - /// @param _err The error to store in this Unexpected object. - Unexpected(E&& _err) : err_{std::forward(_err)} {} - - /// Constructs an Unexpected object with the given error (copy). - /// @param _err The error to store in this Unexpected object (copy) - Unexpected(const E& _err) : err_{_err} {} - - /// Move constructor. - /// @param _other The Unexpected object to move from - Unexpected(Unexpected&&) = default; - - /// Copy constructor. - /// @param _other The Unexpected object to copy from - Unexpected(const Unexpected&) = default; +using Unexpected = rfl::internal::cpp20::Unexpected; - /// Move assignment operator. - /// @param _other The Unexpected object to move from - Unexpected& operator=(Unexpected&&) = default; - - /// Copy assignment operator. - /// @param _other The Unexpected object to copy from - Unexpected& operator=(const Unexpected&) = default; - - /// Returns the error stored in this Unexpected object (const reference). - const E& error() const& { return err_; } - - /// Returns the error stored in this Unexpected object (rvalue reference). - E&& error() && { return std::move(err_); } - - /// Returns the error stored in this Unexpected object (lvalue reference). - E& error() & { return err_; } - - private: - E err_; -}; - -/// The Result class is used for monadic error handling. -/// It can either contain a value of type T (indicating success) or an Error -/// (indicating failure). The class provides various methods for chaining -/// operations, transforming values, and handling errors in a functional style. template -class Result { - static_assert(!std::is_same(), "The result type cannot be Error."); - - using TOrErr = std::array; - - public: - using value_type = T; - using error_type = rfl::Error; - /// @brief Constructs a successful Result holding a copy of the given value. - /// @param _val The value to copy into the Result. - Result(const T& _val) : success_(true) { new (&get_t()) T(_val); } - - /// @brief Constructs a successful Result by moving the given value. - /// @param _val The value to move into the Result. - Result(T&& _val) noexcept : success_(true) { - new (&get_t()) T(std::move(_val)); - } - - /// @brief Constructs an unsuccessful Result holding a copy of the given - /// error. - /// @param _err The Unexpected error to copy into the Result. - Result(const Unexpected& _err) : success_(false) { - new (&get_err()) Error(_err.error()); - } - - /// @brief Constructs an unsuccessful Result by moving the given error. - /// @param _err The Unexpected error to move into the Result. - Result(Unexpected&& _err) : success_(false) { - new (&get_err()) Error(std::move(_err.error())); - } - - /// @brief Move constructor. Transfers ownership of the value or error from - /// another Result. - /// @param _other The Result to move from. After the move, _other is in a - /// valid but unspecified state. - Result(Result&& _other) noexcept : success_(_other.success_) { - move_from_other(_other); - } - - /// @brief Copy constructor for Result. - /// @param _other The other Result object to copy from. - /// @details Copies the success state and the contained value (if any) from - /// another Result of the same type. - Result(const Result& _other) : success_(_other.success_) { - copy_from_other(_other); - } - - /// @brief Move constructor template for Result from a convertible type. - /// @tparam U The type of the value contained in the other Result. - /// @param _other The other Result object to move from. - /// @details Constructs a Result by moving from a Result, where U is - /// convertible to T. The contained value is transformed and moved into the - /// new Result. If the other Result contains an error, - /// the error is propagated to this Result. - template - requires std::is_convertible_v - Result(Result&& _other) : success_(_other && true) { - auto temp = std::forward >(_other).transform( - [](U&& _u) { return T(std::forward(_u)); }); - move_from_other(temp); - } - - /// @brief Copy constructor template for Result from a convertible type. - /// @tparam U The type of the value contained in the other Result. - /// @param _other The other Result object to copy from. - /// @details Constructs a Result by copying from a Result, where U is - /// convertible to T. The contained value is transformed and copied into the - /// new Result. If the other Result contains an error, the error is propagated - /// to this Result. - template - requires std::is_convertible_v - Result(const Result& _other) : success_(_other && true) { - auto temp = _other.transform([](const U& _u) { return T(_u); }); - move_from_other(temp); - } - - /// @brief Destructor for Result. - /// @details Destroys the contained value (if any) and releases any resources - /// held by the Result. - ~Result() { destroy(); } - - /// @brief Monadic operation that applies a function to the contained value if - /// the result is successful. - /// - /// This overload is for rvalue-qualified objects (i.e., temporaries or - /// moved-from objects). If the Result holds a value (success_), the provided - /// function F is invoked with the value (moved), and its result (which must - /// be another Result) is returned. If the Result holds an error, the error - /// is propagated to the returned Result. - /// - /// @tparam F A callable type accepting T and returning Result. - /// @param _f The function to apply to the contained value if present. - /// @return Result The result of applying _f to the value, or propagating - /// the error. - template - auto and_then(const F& _f) && { - /// Result_U is expected to be of type Result. - using Result_U = typename std::invoke_result::type; - if (success_) { - return Result_U(_f(std::move(*this).get_t())); - } else { - return Result_U(std::move(*this).get_err()); - } - } - - /// @brief Monadic operation that applies a function to the contained value if - /// the result is successful. - /// - /// This overload is for const lvalue-qualified objects (i.e., non-modifiable - /// references). If the Result holds a value (success_), the provided function - /// F is invoked with the value, and its result (which must be another - /// Result) is returned. If the Result holds an error, the error is - /// propagated to the returned Result. - /// - /// @tparam F A callable type accepting T and returning Result. - /// @param _f The function to apply to the contained value if present. - /// @return Result The result of applying _f to the value, or propagating - /// the error. - template - auto and_then(const F& _f) const& { - /// Result_U is expected to be of type Result. - using Result_U = typename std::invoke_result::type; - if (success_) { - return Result_U(_f(get_t())); - } else { - return Result_U(get_err()); - } - } - - /// Returns true if the result contains a value, false otherwise. - operator bool() const noexcept { return success_; } - - /// Allows access to the underlying value. Careful: Will result in undefined - /// behavior, if the result contains an error. - T&& operator*() && noexcept { return std::move(*this).get_t(); } - - /// Allows access to the underlying value. Careful: Will result in undefined - /// behavior, if the result contains an error. - T& operator*() & noexcept { return get_t(); } - - /// Allows read access to the underlying value. Careful: Will result in - /// undefined behavior, if the result contains an error. - const T& operator*() const& noexcept { return get_t(); } - - /// @brief Copy assignment operator. - /// - /// Assigns the contents of another Result to this object. If the source - /// and destination are the same, no action is taken. Otherwise, destroys the - /// current contents, copies the success state, and copies the underlying - /// value or error from the other object. - /// - /// @param _other The Result object to copy from. - /// @return Reference to this Result. - Result& operator=(const Result& _other) { - if (this == &_other) { - return *this; - } - destroy(); - success_ = _other.success_; - copy_from_other(_other); - return *this; - } - - /// @brief Move assignment operator. - /// - /// Assigns the contents of another Result to this object by moving. If the - /// source and destination are the same, no action is taken. Otherwise, - /// destroys the current contents, copies the success state, and moves the - /// underlying value or error from the other object. - /// - /// @param _other The Result object to move from. - /// @return Reference to this Result. - Result& operator=(Result&& _other) noexcept { - if (this == &_other) { - return *this; - } - destroy(); - success_ = _other.success_; - move_from_other(_other); - return *this; - } - - /// @brief Move assignment from Unexpected. - /// - /// Assigns an error to this Result by moving from an Unexpected - /// object. Destroys the current contents, sets the state to failure, and - /// constructs the error in place. - /// - /// @param _err The Unexpected object to move the error from. - /// @return Reference to this Result. - Result& operator=(Unexpected&& _err) noexcept { - destroy(); - success_ = false; - new (&get_err()) Error(_err.error()); - return *this; - } - - /// @brief Copy assignment from Unexpected. - /// - /// Assigns an error to this Result by copying from an Unexpected - /// object. Destroys the current contents, sets the state to failure, and - /// constructs the error in place. - /// - /// @param _err The Unexpected object to copy the error from. - /// @return Reference to this Result. - Result& operator=(const Unexpected& _err) noexcept { - destroy(); - success_ = false; - new (&get_err()) Error(_err.error()); - return *this; - } - - /// @brief Assigns the underlying object from another Result. - /// @tparam U The type of the value in the other Result. - /// @param _other The other Result to assign from. - /// @return Reference to this Result after assignment. - /// @details This assignment operator allows assigning from a Result where - /// U is convertible to T. It transforms the contained value (if any) from U - /// to T, destroys the current value, and moves the result. - template - requires std::is_convertible_v - auto& operator=(const Result& _other) { - const auto to_t = [](const U& _u) -> T { return _u; }; - auto temp = _other.transform(to_t); - destroy(); - success_ = temp.success_; - move_from_other(temp); - return *this; - } - - /// @brief Applies a recovery function if the Result is an error (rvalue - /// overload). - /// @tparam F The type of the recovery function. - /// @param _f A function that takes an Error and returns a Result. - /// @return Result after applying the recovery function if this is an - /// error, otherwise the contained value. - /// @details This method is used for error recovery in a monadic style. If the - /// Result is successful, it returns the value. If it contains an error, it - /// calls the provided function with the error and returns its result. - template - Result or_else(const F& _f) && { - if (success_) { - return std::move(*this).get_t(); - } else { - return _f(std::move(*this).get_err()); - } - } - - /// @brief Applies a recovery function if the Result is an error (const lvalue - /// overload). - /// @tparam F The type of the recovery function. - /// @param _f A function that takes an Error and returns a Result. - /// @return Result after applying the recovery function if this is an - /// error, otherwise the contained value. - /// @details This method is used for error recovery in a monadic style. If the - /// Result is successful, it returns the value. If it contains an error, it - /// calls the provided function with the error and returns its result. - template - Result or_else(const F& _f) const& { - if (success_) { - return get_t(); - } else { - return _f(get_err()); - } - } - - /// @brief Applies a transformation function to the contained value if - /// successful, moving the value. - /// @tparam F The type of the transformation function, must be callable as U - /// f(T). - /// @param _f The transformation function to apply to the contained value. - /// @return Result containing the transformed value if successful, - /// otherwise propagates the error. - /// @note This overload is for rvalue references (&&), so the contained value - /// is moved. - template - auto transform(const F& _f) && { - /// Result_U is expected to be of type Result. - using U = std::invoke_result_t; - if (success_) { - return rfl::Result(_f(std::move(*this).get_t())); - } else { - return rfl::Result(rfl::Unexpected(std::move(*this).get_err())); - } - } - - /// @brief Applies a transformation function to the contained value if - /// successful, without moving the value. - /// @tparam F The type of the transformation function, must be callable as U - /// f(T). - /// @param _f The transformation function to apply to the contained value. - /// @return Result containing the transformed value if successful, - /// otherwise propagates the error. - /// @note This overload is for const lvalue references (const&), so the - /// contained value is not moved. - template - auto transform(const F& _f) const& { - /// Result_U is expected to be of type Result. - using U = typename std::invoke_result::type; - if (success_) { - return rfl::Result(_f(get_t())); - } else { - return rfl::Result(get_err()); - } - } - - /// @brief Returns the value if the result does not contain an error. - /// - /// This method is an rvalue-qualified overload, meaning it can only be called - /// on temporary objects. If the result is successful (i.e., contains a - /// value), it returns the value by rvalue reference, transferring ownership - /// using std::move. If the result contains an error, it throws a - /// std::runtime_error with the error message. This is similar to the - /// .unwrap() method in Rust, providing a convenient way to extract the value - /// or fail fast if an error is present. - /// - /// @return T&& The contained value, moved from the result object. - /// @throws std::runtime_error if the result contains an error. - T&& value() && { - if (success_) { - return std::move(*this).get_t(); - } else { - throw std::runtime_error(get_err().what()); - } - } - - /// @brief Returns the value if the result does not contain an error. - /// - /// This method is an lvalue-qualified overload, meaning it can only be called - /// on non-temporary objects. If the result is successful (i.e., contains a - /// value), it returns the value by reference. If the result contains an - /// error, it throws a std::runtime_error with the error message. This method - /// is similar to .unwrap() in Rust, allowing safe extraction of the value or - /// exception-based error handling. - /// - /// @return T& Reference to the contained value. - /// @throws std::runtime_error if the result contains an error. - T& value() & { - if (success_) { - return get_t(); - } else { - throw std::runtime_error(get_err().what()); - } - } - - /// @brief Returns the value if the result does not contain an error. - /// - /// This method is a const lvalue-qualified overload, meaning it can only be - /// called on const, non-temporary objects. If the result is successful (i.e., - /// contains a value), it returns a const reference to the value. If the - /// result contains an error, it throws a std::runtime_error with the error - /// message. This method is similar to .unwrap() in Rust, providing - /// exception-based error handling for const objects. - /// - /// @return const T& Const reference to the contained value. - /// @throws std::runtime_error if the result contains an error. - const T& value() const& { - if (success_) { - return get_t(); - } else { - throw std::runtime_error(get_err().what()); - } - } - - /// @brief Returns the contained value if present, otherwise returns the - /// provided default value. - /// @param _default The value to return if the Result does not contain a - /// value. - /// @return The contained value if present, otherwise the provided default - /// value. - /// @note This overload is for rvalue-qualified objects and moves the - /// contained value. - T value_or(T&& _default) && noexcept { - if (success_) { - return std::move(*this).get_t(); - } else { - return std::forward(_default); - } - } - - /// @brief Returns the contained value if present, otherwise returns the - /// provided default value. - /// @param _default The value to return if the Expected does not contain a - /// value. - /// @return The contained value if present, otherwise the provided default - /// value. - /// @note This overload is for const lvalue-qualified objects and copies the - /// contained value. - T value_or(const T& _default) const& noexcept { - if (success_) { - return get_t(); - } else { - return _default; - } - } - - /// @brief Returns the contained error if present, otherwise returns the - /// provided default error. - /// @tparam G The type of the default error to return if no error is present. - /// @param _default The error to return if the Expected contains a value. - /// @return The contained error if present, otherwise the provided default - /// error. - /// @note This overload is for rvalue-qualified objects and moves the - /// contained error. - template - rfl::Error error_or(G&& _default) && { - if (success_) { - return std::forward(_default); - } else { - return std::move(*this).get_err(); - } - } - - // As specified by the standard : - // https://en.cppreference.com/w/cpp/utility/expected - // Observers - - /// @brief Returns the contained error if present, otherwise returns the - /// provided default error. - /// @tparam G The type of the default error to return if no error is present. - /// @param _default The error to return if the Expected contains a value. - /// @return The contained error if present, otherwise the provided default - /// error. - /// @note This overload is for const lvalue-qualified objects and copies the - /// contained error. - template - rfl::Error error_or(G&& _default) const& { - if (success_) { - return std::forward(_default); - } else { - return get_err(); - } - } - - /// @brief Checks whether the Expected contains a value. - /// @return true if the Expected contains a value, false if it contains an - /// error. - bool has_value() const noexcept { return success_; } - - /// @brief Returns the contained error, moving it if present. - /// @return The contained error, moved from the Expected. - /// @throws std::runtime_error if the Expected contains a value instead of an - /// error. - Error&& error() && { - if (success_) throw std::runtime_error("Expected does not contain value"); - return std::move(*this).get_err(); - } - - /// @brief Returns the contained error by reference. - /// @return Reference to the contained error. - /// @throws std::runtime_error if the Expected contains a value instead of an - /// error. - Error& error() & { - if (success_) throw std::runtime_error("Expected does not contain value"); - return get_err(); - } - - /// @brief Returns the contained error by const reference. - /// @return Const reference to the contained error. - /// @throws std::runtime_error if the Expected contains a value instead of an - /// error. - const Error& error() const& { - if (success_) throw std::runtime_error("Expected does not contain value"); - return get_err(); - } - - /// @brief Provides pointer-like access to the contained value. - /// @return Pointer to the contained value of type T. - T* operator->() noexcept { return &get_t(); } - - /// @brief Provides pointer-like access to the contained value (const - /// overload). - /// @return Const pointer to the contained value of type T. - const T* operator->() const noexcept { return &get_t(); } - - /** - * @brief Transforms the error contained in this Result using the provided - * function, if there is an error. - * - * This method is an rvalue overload and allows the caller to provide a - * function that takes an rfl::Error and returns a new rfl::Error. If this - * Result does not contain a value (i.e., it contains an error), the error is - * transformed using the provided function and a new Result is returned - * containing the transformed error. If this Result contains a value, the - * value is moved into a new Result and returned as-is. - * - * @tparam F A callable type that takes an rfl::Error and returns an - * rfl::Error. - * @param f The function to apply to the error if present. - * @return A new rfl::Result containing either the transformed error or the - * original value. - */ - template - rfl::Result transform_error(F&& f) && { - static_assert( - std::is_same, rfl::Error>(), - "A function passed to transform_error must return an error."); - if (!has_value()) { - return rfl::Result{std::invoke(f, std::move(*this).get_err())}; - } else { - return rfl::Result{std::move(*this).value()}; - } - } - - /** - * @brief Transforms the error contained in this Result using the provided - * function, if there is an error (const lvalue overload). - * - * This method is a const lvalue overload and allows the caller to provide a - * function that takes an rfl::Error and returns a new rfl::Error. If this - * Result does not contain a value (i.e., it contains an error), the error is - * transformed using the provided function and a new Result is returned - * containing the transformed error. If this Result contains a value, the - * value is copied into a new Result and returned as-is. - * - * @tparam F A callable type that takes an rfl::Error and returns an - * rfl::Error. - * @param f The function to apply to the error if present. - * @return A new rfl::Result containing either the transformed error or the - * original value. - */ - template - rfl::Result transform_error(F&& f) const& { - static_assert( - std::is_same, rfl::Error>(), - "A function passed to transform_error must return an error."); - if (!has_value()) { - return rfl::Result{std::invoke(f, get_err())}; - } else { - return rfl::Result{value()}; - } - } - - private: - /// @brief Copies the value or error from another Result instance. - /// @param _other The other Result to copy from. - /// @details If this Result holds a value, constructs a new T from the other's - /// value. Otherwise, constructs a new Error from the other's error. - void copy_from_other(const Result& _other) { - if (success_) { - new (&get_t()) T(_other.get_t()); - } else { - new (&get_err()) Error(_other.get_err()); - } - } - - /// @brief Destroys the contained value or error. - /// @details If this Result holds a value and T is destructible, calls the - /// destructor for T. Otherwise, calls the destructor for Error. - void destroy() { - if (success_) { - if constexpr (std::is_destructible_v >) { - get_t().~T(); - } - } else { - get_err().~Error(); - } - } - - /// @brief Retrieves the contained value as an rvalue reference. - /// @return Rvalue reference to the contained T. - /// @note Only call if this Result holds a value. - T&& get_t() && noexcept { - return std::move(*std::launder(reinterpret_cast(t_or_err_.data()))); - } - - /// @brief Retrieves the contained value as an lvalue reference. - /// @return Lvalue reference to the contained T. - /// @note Only call if this Result holds a value. - T& get_t() & noexcept { - return *std::launder(reinterpret_cast(t_or_err_.data())); - } - - /// @brief Retrieves the contained value as a const lvalue reference. - /// @return Const lvalue reference to the contained T. - /// @note Only call if this Result holds a value. - const T& get_t() const& noexcept { - return *std::launder(reinterpret_cast(t_or_err_.data())); - } - - /// @brief Retrieves the contained error as an rvalue reference. - /// @return Rvalue reference to the contained Error. - /// @note Only call if this Result holds an error. - Error&& get_err() && noexcept { - return std::move(*std::launder(reinterpret_cast(t_or_err_.data()))); - } - - /// @brief Retrieves the contained error as an lvalue reference. - /// @return Lvalue reference to the contained Error. - /// @note Only call if this Result holds an error. - Error& get_err() & noexcept { - return *std::launder(reinterpret_cast(t_or_err_.data())); - } - - /// @brief Retrieves the contained error as a const lvalue reference. - /// @return Const lvalue reference to the contained Error. - /// @note Only call if this Result holds an error. - const Error& get_err() const& noexcept { - return *std::launder(reinterpret_cast(t_or_err_.data())); - } - - /// @brief Moves the contents from another Result instance. - /// - /// This method transfers ownership of the value or error from the given - /// Result reference (_other) into this instance. If this Result holds a - /// successful value (success_ is true), it move-constructs the value of type - /// T from _other into this instance. Otherwise, it move-constructs the Error - /// from _other. This operation does not throw exceptions. - /// - /// @param _other Reference to another Result to move from. - /// @note After this operation, the state of _other is valid but unspecified. - /// @note This function is noexcept and should not throw exceptions. - void move_from_other(Result& _other) noexcept { - if (success_) { - new (&get_t()) T(std::move(_other.get_t())); - } else { - new (&get_err()) Error(std::move(_other.get_err())); - } - } - - /// Signifies whether this was a success. - bool success_; - - /// The underlying data, can either be T or Error. - alignas(std::max(alignof(T), alignof(Error))) TOrErr t_or_err_; -}; +using Result = rfl::internal::cpp20::Result; #endif diff --git a/include/rfl/Settings.hpp b/include/rfl/Settings.hpp index a1cf2c089..9fad53679 100644 --- a/include/rfl/Settings.hpp +++ b/include/rfl/Settings.hpp @@ -6,70 +6,11 @@ #include #include "Field.hpp" -#include "internal/StringLiteral.hpp" -#include "internal/field_index_by_name.hpp" -#include "internal/field_index_from_ptm.hpp" -#include "internal/get_field_names.hpp" -#include "internal/get_ith_field_from_fake_object.hpp" #include "replace.hpp" -namespace rfl::internal { - -template -struct member_ptr_traits : std::false_type {}; - -template -struct member_ptr_traits - : std::bool_constant && - std::is_const_v> {}; - -template -concept const_member_of = member_ptr_traits::value; - -/// Returns a copy of `_obj` with the field designated by `FieldPtr` replaced -/// by `_value`. Used as the body of the with() method generated by -/// RFL_SETTINGS_OPS. Field name is recovered through the fake-object path -/// that the rest of reflect-cpp uses, so MSVC parses it correctly. -template - requires const_member_of -T settings_with_replaced( - const T& _obj, - std::remove_const_t< - std::remove_reference_t().*FieldPtr)>> - _value) { - constexpr std::size_t I = field_index_v; - static_assert( - I != static_cast(-1), - "FieldPtr does not refer to a non-static data member of T. " - "Make sure you pass &T::field, where field is declared inside T."); - constexpr auto name = - get_field_name_str_lit()>(); - return rfl::replace(_obj, rfl::make_field(std::move(_value))); -} - -/// Returns a copy of `_obj` with the field with the given Name replaced by -/// `_value`. Used as the body of the with<"name">() overload generated by -/// RFL_SETTINGS_OPS. -template -T settings_with_replaced_by_name( - const T& _obj, - field_value_type_at_t> _value) { - constexpr std::size_t I = field_index_by_name_v; - static_assert(I != static_cast(-1), - "No field with the given name exists in T."); -#ifdef _MSC_VER - static_assert(ith_field_is_const(I)>(), - "Fields in Settings structs must be const."); -#endif - return rfl::replace(_obj, rfl::make_field(std::move(_value))); -} - -} // namespace rfl::internal - /// Defines the standard with<&T::field>(value) and with<"field">(value) -/// accessors inside a settings struct. The struct must be a flat aggregate -/// (no base classes). Fields should be declared const so the only way to +/// accessors inside a settings struct. +/// Fields should be declared const so the only way to /// mutate them is via with(), which returns a new copy with the chosen field /// replaced. Place the macro at the end of the struct body, after all data /// members. @@ -83,21 +24,16 @@ T settings_with_replaced_by_name( /// auto a = MySettings{}.with<&MySettings::some_option>(100); /// auto b = MySettings{}.with<"some_option">(100); #define RFL_SETTINGS_OPS(Derived) \ - template \ - requires ::rfl::internal::const_member_of \ - Derived with(std::remove_const_t().*FieldPtr)>> \ - _value) const { \ - return ::rfl::internal::settings_with_replaced( \ - *this, std::move(_value)); \ + template \ + requires(std::is_member_pointer_v) \ + Derived with(auto _value) const { \ + return ::rfl::replace(*this, \ + ::rfl::make_field<_field_ptr>(std::move(_value))); \ } \ - template <::rfl::internal::StringLiteral Name> \ - Derived with(::rfl::internal::field_value_type_at_t< \ - Derived, \ - ::rfl::internal::field_index_by_name_v> \ - _value) const { \ - return ::rfl::internal::settings_with_replaced_by_name( \ - *this, std::move(_value)); \ + \ + template <::rfl::internal::StringLiteral _name> \ + Derived with(auto _value) const { \ + return ::rfl::replace(*this, ::rfl::make_field<_name>(std::move(_value))); \ } #endif diff --git a/include/rfl/cbor/Reader.hpp b/include/rfl/cbor/Reader.hpp index f7f705af0..8a6fd8511 100644 --- a/include/rfl/cbor/Reader.hpp +++ b/include/rfl/cbor/Reader.hpp @@ -3,7 +3,20 @@ #include #include +// Silence a -Wmaybe-uninitialized false positive in jsoncons +// (utility/bigint.hpp). +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#endif #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include #include @@ -16,20 +29,22 @@ namespace rfl::cbor { -/// Reader class for deserializing CBOR (Concise Binary Object Representation) data. -/// This class provides the interface for parsing CBOR format into C++ objects. -/// CBOR is a binary data serialization format that is more compact than JSON while -/// maintaining similar data model capabilities. +/// Reader class for deserializing CBOR (Concise Binary Object Representation) +/// data. This class provides the interface for parsing CBOR format into C++ +/// objects. CBOR is a binary data serialization format that is more compact +/// than JSON while maintaining similar data model capabilities. class Reader { public: /// Represents a CBOR array during deserialization. - /// Wraps a pointer to the underlying jsoncons JSON value representing the array. + /// Wraps a pointer to the underlying jsoncons JSON value representing the + /// array. struct CBORInputArray { jsoncons::json* val_; }; /// Represents a CBOR object during deserialization. - /// Wraps a pointer to the underlying jsoncons JSON value representing the object. + /// Wraps a pointer to the underlying jsoncons JSON value representing the + /// object. struct CBORInputObject { jsoncons::json* val_; }; @@ -50,8 +65,9 @@ class Reader { ~Reader() = default; - /// Compile-time flag indicating whether type T has a custom constructor from CBOR. - /// If true, the type provides a static from_cbor_obj() method for custom deserialization. + /// Compile-time flag indicating whether type T has a custom constructor from + /// CBOR. If true, the type provides a static from_cbor_obj() method for + /// custom deserialization. template static constexpr bool has_custom_constructor = (requires(InputVarType var) { T::from_cbor_obj(var); }); @@ -59,7 +75,8 @@ class Reader { /// Retrieves a field from a CBOR array by index. /// @param _idx The zero-based index of the element to retrieve /// @param _arr The CBOR array to read from - /// @return Result containing the field value, or an error if index is out of bounds + /// @return Result containing the field value, or an error if index is out of + /// bounds rfl::Result get_field_from_array( const size_t _idx, const InputArrayType& _arr) const noexcept { if (_idx >= _arr.val_->size()) { @@ -71,7 +88,8 @@ class Reader { /// Retrieves a field from a CBOR object by name. /// @param _name The name of the field to retrieve /// @param _obj The CBOR object to read from - /// @return Result containing the field value, or an error if field is not found + /// @return Result containing the field value, or an error if field is not + /// found rfl::Result get_field_from_object( const std::string& _name, const InputObjectType& _obj) const noexcept { for (auto& kv : _obj.val_->object_range()) { @@ -90,10 +108,12 @@ class Reader { } /// Converts a CBOR value to a basic C++ type. - /// Supports strings, bytesstrings, booleans, floating-point numbers, and integers. + /// Supports strings, bytesstrings, booleans, floating-point numbers, and + /// integers. /// @tparam T The target C++ type /// @param _var The CBOR value to convert - /// @return Result containing the converted value, or an error if conversion fails + /// @return Result containing the converted value, or an error if conversion + /// fails template rfl::Result to_basic_type(const InputVarType& _var) const noexcept { if constexpr (std::is_same, std::string>()) { @@ -109,8 +129,7 @@ class Reader { using VectorType = std::remove_cvref_t; using ValueType = typename VectorType::value_type; if (!_var.val_->is_byte_string()) { - if constexpr (std::is_same, - rfl::Bytestring>()) { + if constexpr (std::is_same, rfl::Bytestring>()) { return error("Could not cast to bytestring."); } else { return error("Could not cast to vectorstring."); @@ -159,7 +178,8 @@ class Reader { /// Converts a CBOR value to an object. /// @param _var The CBOR value to convert - /// @return Result containing the object, or an error if value is not an object + /// @return Result containing the object, or an error if value is not an + /// object rfl::Result to_object( const InputVarType& _var) const noexcept { if (!_var.val_->is_object()) { @@ -170,7 +190,8 @@ class Reader { /// Reads all elements from a CBOR array using a provided array reader. /// The array reader's read() method is called for each element in the array. - /// @tparam ArrayReader Type that provides a read() method for processing elements + /// @tparam ArrayReader Type that provides a read() method for processing + /// elements /// @param _array_reader The reader object used to process each array element /// @param _arr The CBOR array to read from /// @return std::nullopt on success, or an Error if reading fails @@ -186,9 +207,11 @@ class Reader { return std::nullopt; } - /// Reads all key-value pairs from a CBOR object using a provided object reader. - /// The object reader's read() method is called for each key-value pair. - /// @tparam ObjectReader Type that provides a read() method for processing key-value pairs + /// Reads all key-value pairs from a CBOR object using a provided object + /// reader. The object reader's read() method is called for each key-value + /// pair. + /// @tparam ObjectReader Type that provides a read() method for processing + /// key-value pairs /// @param _object_reader The reader object used to process each field /// @param _obj The CBOR object to read from /// @return std::nullopt on success, or an Error if reading fails @@ -202,10 +225,12 @@ class Reader { } /// Uses a type's custom constructor to deserialize from CBOR. - /// Calls the type's static from_cbor_obj() method for custom deserialization logic. + /// Calls the type's static from_cbor_obj() method for custom deserialization + /// logic. /// @tparam T The type to construct, must have a from_cbor_obj() static method /// @param _var The CBOR value to deserialize from - /// @return Result containing the constructed object, or an error if construction fails + /// @return Result containing the constructed object, or an error if + /// construction fails template rfl::Result use_custom_constructor( const InputVarType& _var) const noexcept { diff --git a/include/rfl/cbor/Writer.hpp b/include/rfl/cbor/Writer.hpp index bf4e8d4ff..2a93b1522 100644 --- a/include/rfl/cbor/Writer.hpp +++ b/include/rfl/cbor/Writer.hpp @@ -1,7 +1,20 @@ #ifndef RFL_CBOR_WRITER_HPP_ #define RFL_CBOR_WRITER_HPP_ +// Silence a -Wmaybe-uninitialized false positive in jsoncons +// (utility/bigint.hpp). +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#endif #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include #include diff --git a/include/rfl/cbor/read.hpp b/include/rfl/cbor/read.hpp index c60fdbeb9..98c549608 100644 --- a/include/rfl/cbor/read.hpp +++ b/include/rfl/cbor/read.hpp @@ -2,8 +2,21 @@ #define RFL_CBOR_READ_HPP_ #include +// Silence a -Wmaybe-uninitialized false positive in jsoncons +// (utility/bigint.hpp). +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#endif #include #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include "../Processors.hpp" @@ -18,12 +31,15 @@ using InputObjectType = typename Reader::InputObjectType; using InputVarType = typename Reader::InputVarType; /// Parses an object from CBOR bytes using reflection. -/// CBOR (Concise Binary Object Representation) is a binary data format similar to JSON. -/// This function reads CBOR bytes and constructs a C++ object using compile-time reflection. +/// CBOR (Concise Binary Object Representation) is a binary data format similar +/// to JSON. This function reads CBOR bytes and constructs a C++ object using +/// compile-time reflection. /// @tparam T The type to parse into /// @tparam Ps Processors to apply during parsing (transforms the data) -/// @param _bytes A contiguous byte container (e.g., std::vector, std::string) containing CBOR data -/// @return Result containing either the parsed object (or array of objects) or an error message +/// @param _bytes A contiguous byte container (e.g., std::vector, +/// std::string) containing CBOR data +/// @return Result containing either the parsed object (or array of objects) or +/// an error message template Result> read( const concepts::ContiguousByteContainer auto& _bytes) { @@ -41,7 +57,8 @@ Result> read( /// @tparam T The type to parse into /// @tparam Ps Processors to apply during parsing (transforms the data) /// @param _stream The input stream containing CBOR binary data -/// @return Result containing either the parsed object (or array of objects) or an error message +/// @return Result containing either the parsed object (or array of objects) or +/// an error message template Result> read(std::istream& _stream) { auto result = jsoncons::cbor::try_decode_cbor(_stream); diff --git a/include/rfl/cbor/write.hpp b/include/rfl/cbor/write.hpp index 97cecb29e..d2c282457 100644 --- a/include/rfl/cbor/write.hpp +++ b/include/rfl/cbor/write.hpp @@ -2,7 +2,20 @@ #define RFL_CBOR_WRITE_HPP_ #include +// Silence a -Wmaybe-uninitialized false positive in jsoncons +// (utility/bigint.hpp). +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#endif #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include "../internal/ptr_cast.hpp" @@ -12,8 +25,9 @@ namespace rfl::cbor { /// Returns CBOR bytes representation of the object. -/// CBOR (Concise Binary Object Representation) is a binary data format similar to JSON but more compact. -/// Uses compile-time reflection to serialize a C++ object to CBOR format. +/// CBOR (Concise Binary Object Representation) is a binary data format similar +/// to JSON but more compact. Uses compile-time reflection to serialize a C++ +/// object to CBOR format. /// @tparam Ps Processors to apply during serialization (transforms the data) /// @param _obj The object to serialize to CBOR /// @return A vector of chars containing the CBOR binary representation @@ -32,7 +46,8 @@ std::vector write(const auto& _obj) { } /// Writes a CBOR representation into an ostream. -/// Uses compile-time reflection to serialize a C++ object to CBOR and write to a stream. +/// Uses compile-time reflection to serialize a C++ object to CBOR and write to +/// a stream. /// @tparam Ps Processors to apply during serialization (transforms the data) /// @param _obj The object to serialize to CBOR /// @param _stream The output stream to write CBOR binary data to diff --git a/include/rfl/csv/Settings.hpp b/include/rfl/csv/Settings.hpp index bf9573a4f..985656671 100644 --- a/include/rfl/csv/Settings.hpp +++ b/include/rfl/csv/Settings.hpp @@ -1,8 +1,21 @@ #ifndef RFL_CSV_SETTINGS_HPP_ #define RFL_CSV_SETTINGS_HPP_ +// Silence a -Warray-bounds false positive in Apache Arrow +// (buffer_builder.h) with GCC 16. +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif +#endif #include #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include "../Settings.hpp" #include "../internal/deprecated_with.hpp" diff --git a/include/rfl/csv/read.hpp b/include/rfl/csv/read.hpp index 4e6fff4b0..effbc9413 100644 --- a/include/rfl/csv/read.hpp +++ b/include/rfl/csv/read.hpp @@ -1,8 +1,21 @@ #ifndef RFL_CSV_READ_HPP_ #define RFL_CSV_READ_HPP_ +// Silence a -Warray-bounds false positive in Apache Arrow +// (buffer_builder.h) with GCC 16. +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif +#endif #include #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include diff --git a/include/rfl/csv/write.hpp b/include/rfl/csv/write.hpp index 9060566b4..b893e6573 100644 --- a/include/rfl/csv/write.hpp +++ b/include/rfl/csv/write.hpp @@ -1,9 +1,22 @@ #ifndef RFL_CSV_WRITE_HPP_ #define RFL_CSV_WRITE_HPP_ +// Silence a -Warray-bounds false positive in Apache Arrow +// (buffer_builder.h) with GCC 16. +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif +#endif #include #include #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include diff --git a/include/rfl/enums.hpp b/include/rfl/enums.hpp index b913b6bd6..33975f9b7 100644 --- a/include/rfl/enums.hpp +++ b/include/rfl/enums.hpp @@ -5,16 +5,18 @@ #include #include "Result.hpp" +#include "internal/enums/from_string.hpp" #include "internal/enums/get_enum_names.hpp" +#include "internal/enums/get_enum_range.hpp" +#include "internal/enums/is_flag_enum.hpp" +#include "internal/enums/to_string.hpp" #include "internal/strings/strings.hpp" -#include "thirdparty/enchantum/bitflags.hpp" -#include "thirdparty/enchantum/enchantum.hpp" namespace rfl { // Returns a named tuple mapping names of enumerators of the given enum type to // their values. -template +template auto get_enumerators() { return internal::enums::names_to_enumerator_named_tuple( internal::enums::get_enum_names()); @@ -22,7 +24,7 @@ auto get_enumerators() { // Returns a named tuple mapping names of enumerators of the given enum type to // their underlying values. -template +template auto get_underlying_enumerators() { return internal::enums::names_to_underlying_enumerator_named_tuple( internal::enums::get_enum_names()); @@ -30,7 +32,7 @@ auto get_underlying_enumerators() { // Returns an std::array containing pairs of enumerator names (as // std::string_view) and values. -template +template constexpr auto get_enumerator_array() { return internal::enums::names_to_enumerator_array( internal::enums::get_enum_names()); @@ -38,30 +40,22 @@ constexpr auto get_enumerator_array() { // Returns an std::array containing pairs of enumerator names (as // std::string_view) and underlying values. -template +template constexpr auto get_underlying_enumerator_array() { return internal::enums::names_to_underlying_enumerator_array( internal::enums::get_enum_names()); } // Returns the range of the given enum type as a pair of the minimum and maximum -template +template constexpr auto get_enum_range() { - return std::make_pair(enchantum::enum_traits::min, - enchantum::enum_traits::max); + return internal::enums::get_enum_range(); } // Converts an enum value to tis string representation. -template +template std::string enum_to_string(const EnumType _enum) { - const auto to_string_or_number = [](const EnumType e) { - const auto s = enchantum::to_string(e); - return s.empty() ? std::to_string( - static_cast>(e)) - : std::string(s); - }; - - if constexpr (enchantum::is_bitflag) { + if constexpr (internal::enums::is_flag_enum) { // Iterates through the enum bit by bit and matches it against the flags. using T = std::underlying_type_t; auto val = static_cast(_enum); @@ -70,8 +64,8 @@ std::string enum_to_string(const EnumType _enum) { while (val != 0) { const auto bit = val & static_cast(1); if (bit == 1) { - auto str = - to_string_or_number(static_cast(static_cast(1) << i)); + auto str = internal::enums::to_string( + static_cast(static_cast(1) << i)); flags.emplace_back(std::move(str)); } ++i; @@ -82,17 +76,19 @@ std::string enum_to_string(const EnumType _enum) { } return internal::strings::join("|", flags); } else { - return to_string_or_number(_enum); + return internal::enums::to_string(_enum); } } // Converts a string to a value of the given enum type. -template +template Result string_to_enum(const std::string& _str) { const auto cast_numbers_or_names = [](const std::string& name) -> Result { - const auto r = enchantum::cast(name); - if (r) return *r; + const auto r = internal::enums::from_string(name); + if (r) { + return *r; + } try { return static_cast(std::stoi(name)); } catch (std::exception& exp) { @@ -110,7 +106,7 @@ Result string_to_enum(const std::string& _str) { } }; - if constexpr (enchantum::is_bitflag) { + if constexpr (internal::enums::is_flag_enum) { using T = std::underlying_type_t; const auto split = internal::strings::split(_str, "|"); auto res = static_cast(0); diff --git a/include/rfl/internal/Error.hpp b/include/rfl/internal/Error.hpp new file mode 100644 index 000000000..20231c33f --- /dev/null +++ b/include/rfl/internal/Error.hpp @@ -0,0 +1,57 @@ +#ifndef RFL_INTERNAL_ERROR_HPP_ +#define RFL_INTERNAL_ERROR_HPP_ + +#include + +namespace rfl::internal { + +/// Defines the error class to be returned when something went wrong. +/// This is used throughout reflect-cpp for error handling. +class Error { + public: + /// Default constructor - creates an empty error. + Error() = default; + + /// Constructs an error with a message (copy). + /// @param _what The error message describing what went wrong + Error(const std::string& _what) : what_(_what) {} + + /// Constructs an error with a message (move). + /// @param _what The error message describing what went wrong (will be moved) + Error(std::string&& _what) : what_(std::move(_what)) {} + + /// Destructor. + ~Error() = default; + + /// Copy constructor. + /// @param e The error to copy from + Error(const Error& e) = default; + + /// Move constructor. + /// @param e The error to move from + Error(Error&& e) noexcept = default; + + /// Copy assignment operator. + /// @param _other The error to copy from + /// @return Reference to this error + Error& operator=(const Error& _other) = default; + + /// Move assignment operator. + /// @param _other The error to move from + /// @return Reference to this error + Error& operator=(Error&& _other) noexcept = default; + + /// Returns the error message, equivalent to .what() in std::exception. + const std::string& what() const& { return what_; } + /// Moves the error message out of Error object and leaves what_ in a moved + /// from state + std::string what() && { return std::move(what_); } + + private: + /// Documents what went wrong + std::string what_; +}; + +} // namespace rfl::internal + +#endif diff --git a/include/rfl/internal/StringLiteral.hpp b/include/rfl/internal/StringLiteral.hpp index 3c59036ac..56a64e108 100644 --- a/include/rfl/internal/StringLiteral.hpp +++ b/include/rfl/internal/StringLiteral.hpp @@ -7,8 +7,7 @@ #include #include -namespace rfl { -namespace internal { +namespace rfl::internal { /// Normal strings cannot be used as template /// parameters, but this can. This is needed @@ -27,8 +26,12 @@ struct StringLiteral { std::copy_n(_str, N, std::data(arr_)); } + constexpr StringLiteral(const std::string_view _str) { + std::copy_n(_str.data(), _str.size(), std::data(arr_)); + } + template - requires (std::is_same_v || std::is_same_v) + requires(std::is_same_v || std::is_same_v) explicit constexpr StringLiteral(T _data) { std::copy_n(_data, N, std::data(arr_)); } @@ -61,7 +64,6 @@ constexpr inline bool operator!=(const StringLiteral& _first, return !(_first == _second); } -} // namespace internal -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/internal/bind_to_tuple.hpp b/include/rfl/internal/bind_to_tuple.hpp index 2eab5b357..b6a578c34 100644 --- a/include/rfl/internal/bind_to_tuple.hpp +++ b/include/rfl/internal/bind_to_tuple.hpp @@ -1,4390 +1,21 @@ #ifndef RFL_INTERNAL_BIND_TO_TUPLE_HPP_ #define RFL_INTERNAL_BIND_TO_TUPLE_HPP_ -#include -#include -#include - -#include "../Tuple.hpp" -#include "../always_false.hpp" -#include "num_fields.hpp" +#ifndef REFLECTCPP_USE_CPP26_REFLECTION +#include "cpp20/bind_to_tuple.hpp" +#else +#include "cpp26/bind_to_tuple.hpp" +#endif namespace rfl::internal { -#define RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( \ - n, ...) \ - auto& [__VA_ARGS__] = _t; \ - return [](auto&... _refs) { return rfl::make_tuple(&_refs...); }(__VA_ARGS__); - -// The following boilerplate code has been generated with -// scripts/bind_to_tuple_impl.py -template -auto bind_to_tuple_impl(auto& _t) { - if constexpr (_num_fields == 0) { - return rfl::make_tuple(); - } else { - if constexpr (_num_fields < 129) { - if constexpr (_num_fields < 65) { - if constexpr (_num_fields < 33) { - if constexpr (_num_fields < 17) { - if constexpr (_num_fields < 9) { - if constexpr (_num_fields < 5) { - if constexpr (_num_fields < 3) { - if constexpr (_num_fields < 2) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 1, f1); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 2, f1, f2); - } - } else { - if constexpr (_num_fields < 4) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 3, f1, f2, f3); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 4, f1, f2, f3, f4); - } - } - } else { - if constexpr (_num_fields < 7) { - if constexpr (_num_fields < 6) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 5, f1, f2, f3, f4, f5); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 6, f1, f2, f3, f4, f5, f6); - } - } else { - if constexpr (_num_fields < 8) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 7, f1, f2, f3, f4, f5, f6, f7); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 8, f1, f2, f3, f4, f5, f6, f7, f8); - } - } - } - } else { - if constexpr (_num_fields < 13) { - if constexpr (_num_fields < 11) { - if constexpr (_num_fields < 10) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 9, f1, f2, f3, f4, f5, f6, f7, f8, f9); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 10, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10); - } - } else { - if constexpr (_num_fields < 12) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 11, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 12, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12); - } - } - } else { - if constexpr (_num_fields < 15) { - if constexpr (_num_fields < 14) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 13, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 14, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14); - } - } else { - if constexpr (_num_fields < 16) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 15, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 16, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16); - } - } - } - } - } else { - if constexpr (_num_fields < 25) { - if constexpr (_num_fields < 21) { - if constexpr (_num_fields < 19) { - if constexpr (_num_fields < 18) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 17, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 18, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18); - } - } else { - if constexpr (_num_fields < 20) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 19, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 20, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20); - } - } - } else { - if constexpr (_num_fields < 23) { - if constexpr (_num_fields < 22) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 21, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 22, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22); - } - } else { - if constexpr (_num_fields < 24) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 23, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 24, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24); - } - } - } - } else { - if constexpr (_num_fields < 29) { - if constexpr (_num_fields < 27) { - if constexpr (_num_fields < 26) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 25, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 26, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26); - } - } else { - if constexpr (_num_fields < 28) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 27, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 28, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28); - } - } - } else { - if constexpr (_num_fields < 31) { - if constexpr (_num_fields < 30) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 29, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 30, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30); - } - } else { - if constexpr (_num_fields < 32) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 31, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 32, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32); - } - } - } - } - } - } else { - if constexpr (_num_fields < 49) { - if constexpr (_num_fields < 41) { - if constexpr (_num_fields < 37) { - if constexpr (_num_fields < 35) { - if constexpr (_num_fields < 34) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 33, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 34, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34); - } - } else { - if constexpr (_num_fields < 36) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 35, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 36, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36); - } - } - } else { - if constexpr (_num_fields < 39) { - if constexpr (_num_fields < 38) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 37, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 38, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38); - } - } else { - if constexpr (_num_fields < 40) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 39, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 40, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40); - } - } - } - } else { - if constexpr (_num_fields < 45) { - if constexpr (_num_fields < 43) { - if constexpr (_num_fields < 42) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 41, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 42, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42); - } - } else { - if constexpr (_num_fields < 44) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 43, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 44, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44); - } - } - } else { - if constexpr (_num_fields < 47) { - if constexpr (_num_fields < 46) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 45, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 46, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46); - } - } else { - if constexpr (_num_fields < 48) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 47, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 48, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48); - } - } - } - } - } else { - if constexpr (_num_fields < 57) { - if constexpr (_num_fields < 53) { - if constexpr (_num_fields < 51) { - if constexpr (_num_fields < 50) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 49, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 50, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50); - } - } else { - if constexpr (_num_fields < 52) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 51, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 52, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52); - } - } - } else { - if constexpr (_num_fields < 55) { - if constexpr (_num_fields < 54) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 53, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 54, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54); - } - } else { - if constexpr (_num_fields < 56) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 55, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 56, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56); - } - } - } - } else { - if constexpr (_num_fields < 61) { - if constexpr (_num_fields < 59) { - if constexpr (_num_fields < 58) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 57, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 58, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58); - } - } else { - if constexpr (_num_fields < 60) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 59, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 60, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60); - } - } - } else { - if constexpr (_num_fields < 63) { - if constexpr (_num_fields < 62) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 61, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 62, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62); - } - } else { - if constexpr (_num_fields < 64) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 63, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 64, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64); - } - } - } - } - } - } - } else { - if constexpr (_num_fields < 97) { - if constexpr (_num_fields < 81) { - if constexpr (_num_fields < 73) { - if constexpr (_num_fields < 69) { - if constexpr (_num_fields < 67) { - if constexpr (_num_fields < 66) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 65, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 66, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66); - } - } else { - if constexpr (_num_fields < 68) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 67, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 68, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68); - } - } - } else { - if constexpr (_num_fields < 71) { - if constexpr (_num_fields < 70) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 69, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 70, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70); - } - } else { - if constexpr (_num_fields < 72) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 71, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 72, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72); - } - } - } - } else { - if constexpr (_num_fields < 77) { - if constexpr (_num_fields < 75) { - if constexpr (_num_fields < 74) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 73, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 74, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74); - } - } else { - if constexpr (_num_fields < 76) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 75, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 76, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76); - } - } - } else { - if constexpr (_num_fields < 79) { - if constexpr (_num_fields < 78) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 77, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 78, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78); - } - } else { - if constexpr (_num_fields < 80) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 79, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 80, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80); - } - } - } - } - } else { - if constexpr (_num_fields < 89) { - if constexpr (_num_fields < 85) { - if constexpr (_num_fields < 83) { - if constexpr (_num_fields < 82) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 81, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 82, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82); - } - } else { - if constexpr (_num_fields < 84) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 83, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 84, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84); - } - } - } else { - if constexpr (_num_fields < 87) { - if constexpr (_num_fields < 86) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 85, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 86, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86); - } - } else { - if constexpr (_num_fields < 88) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 87, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 88, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88); - } - } - } - } else { - if constexpr (_num_fields < 93) { - if constexpr (_num_fields < 91) { - if constexpr (_num_fields < 90) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 89, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 90, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90); - } - } else { - if constexpr (_num_fields < 92) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 91, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 92, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92); - } - } - } else { - if constexpr (_num_fields < 95) { - if constexpr (_num_fields < 94) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 93, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 94, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94); - } - } else { - if constexpr (_num_fields < 96) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 95, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 96, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96); - } - } - } - } - } - } else { - if constexpr (_num_fields < 113) { - if constexpr (_num_fields < 105) { - if constexpr (_num_fields < 101) { - if constexpr (_num_fields < 99) { - if constexpr (_num_fields < 98) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 97, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 98, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98); - } - } else { - if constexpr (_num_fields < 100) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 99, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 100, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100); - } - } - } else { - if constexpr (_num_fields < 103) { - if constexpr (_num_fields < 102) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 101, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 102, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102); - } - } else { - if constexpr (_num_fields < 104) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 103, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 104, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104); - } - } - } - } else { - if constexpr (_num_fields < 109) { - if constexpr (_num_fields < 107) { - if constexpr (_num_fields < 106) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 105, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 106, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106); - } - } else { - if constexpr (_num_fields < 108) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 107, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 108, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108); - } - } - } else { - if constexpr (_num_fields < 111) { - if constexpr (_num_fields < 110) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 109, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 110, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110); - } - } else { - if constexpr (_num_fields < 112) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 111, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 112, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112); - } - } - } - } - } else { - if constexpr (_num_fields < 121) { - if constexpr (_num_fields < 117) { - if constexpr (_num_fields < 115) { - if constexpr (_num_fields < 114) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 113, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 114, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114); - } - } else { - if constexpr (_num_fields < 116) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 115, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 116, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116); - } - } - } else { - if constexpr (_num_fields < 119) { - if constexpr (_num_fields < 118) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 117, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 118, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118); - } - } else { - if constexpr (_num_fields < 120) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 119, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 120, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120); - } - } - } - } else { - if constexpr (_num_fields < 125) { - if constexpr (_num_fields < 123) { - if constexpr (_num_fields < 122) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 121, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 122, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122); - } - } else { - if constexpr (_num_fields < 124) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 123, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 124, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124); - } - } - } else { - if constexpr (_num_fields < 127) { - if constexpr (_num_fields < 126) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 125, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 126, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126); - } - } else { - if constexpr (_num_fields < 128) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 127, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 128, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128); - } - } - } - } - } - } - } - } else { - if constexpr (_num_fields < 193) { - if constexpr (_num_fields < 161) { - if constexpr (_num_fields < 145) { - if constexpr (_num_fields < 137) { - if constexpr (_num_fields < 133) { - if constexpr (_num_fields < 131) { - if constexpr (_num_fields < 130) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 129, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 130, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130); - } - } else { - if constexpr (_num_fields < 132) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 131, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 132, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132); - } - } - } else { - if constexpr (_num_fields < 135) { - if constexpr (_num_fields < 134) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 133, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 134, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134); - } - } else { - if constexpr (_num_fields < 136) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 135, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 136, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136); - } - } - } - } else { - if constexpr (_num_fields < 141) { - if constexpr (_num_fields < 139) { - if constexpr (_num_fields < 138) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 137, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 138, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138); - } - } else { - if constexpr (_num_fields < 140) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 139, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 140, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140); - } - } - } else { - if constexpr (_num_fields < 143) { - if constexpr (_num_fields < 142) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 141, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 142, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142); - } - } else { - if constexpr (_num_fields < 144) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 143, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 144, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144); - } - } - } - } - } else { - if constexpr (_num_fields < 153) { - if constexpr (_num_fields < 149) { - if constexpr (_num_fields < 147) { - if constexpr (_num_fields < 146) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 145, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 146, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146); - } - } else { - if constexpr (_num_fields < 148) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 147, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 148, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148); - } - } - } else { - if constexpr (_num_fields < 151) { - if constexpr (_num_fields < 150) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 149, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 150, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150); - } - } else { - if constexpr (_num_fields < 152) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 151, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 152, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152); - } - } - } - } else { - if constexpr (_num_fields < 157) { - if constexpr (_num_fields < 155) { - if constexpr (_num_fields < 154) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 153, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 154, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154); - } - } else { - if constexpr (_num_fields < 156) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 155, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 156, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156); - } - } - } else { - if constexpr (_num_fields < 159) { - if constexpr (_num_fields < 158) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 157, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 158, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158); - } - } else { - if constexpr (_num_fields < 160) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 159, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 160, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160); - } - } - } - } - } - } else { - if constexpr (_num_fields < 177) { - if constexpr (_num_fields < 169) { - if constexpr (_num_fields < 165) { - if constexpr (_num_fields < 163) { - if constexpr (_num_fields < 162) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 161, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 162, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162); - } - } else { - if constexpr (_num_fields < 164) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 163, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 164, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164); - } - } - } else { - if constexpr (_num_fields < 167) { - if constexpr (_num_fields < 166) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 165, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 166, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166); - } - } else { - if constexpr (_num_fields < 168) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 167, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 168, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168); - } - } - } - } else { - if constexpr (_num_fields < 173) { - if constexpr (_num_fields < 171) { - if constexpr (_num_fields < 170) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 169, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 170, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170); - } - } else { - if constexpr (_num_fields < 172) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 171, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 172, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172); - } - } - } else { - if constexpr (_num_fields < 175) { - if constexpr (_num_fields < 174) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 173, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 174, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174); - } - } else { - if constexpr (_num_fields < 176) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 175, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 176, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176); - } - } - } - } - } else { - if constexpr (_num_fields < 185) { - if constexpr (_num_fields < 181) { - if constexpr (_num_fields < 179) { - if constexpr (_num_fields < 178) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 177, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 178, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178); - } - } else { - if constexpr (_num_fields < 180) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 179, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 180, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180); - } - } - } else { - if constexpr (_num_fields < 183) { - if constexpr (_num_fields < 182) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 181, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 182, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182); - } - } else { - if constexpr (_num_fields < 184) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 183, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 184, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184); - } - } - } - } else { - if constexpr (_num_fields < 189) { - if constexpr (_num_fields < 187) { - if constexpr (_num_fields < 186) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 185, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 186, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186); - } - } else { - if constexpr (_num_fields < 188) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 187, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 188, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188); - } - } - } else { - if constexpr (_num_fields < 191) { - if constexpr (_num_fields < 190) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 189, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 190, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190); - } - } else { - if constexpr (_num_fields < 192) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 191, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 192, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192); - } - } - } - } - } - } - } else { - if constexpr (_num_fields < 225) { - if constexpr (_num_fields < 209) { - if constexpr (_num_fields < 201) { - if constexpr (_num_fields < 197) { - if constexpr (_num_fields < 195) { - if constexpr (_num_fields < 194) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 193, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 194, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194); - } - } else { - if constexpr (_num_fields < 196) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 195, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 196, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196); - } - } - } else { - if constexpr (_num_fields < 199) { - if constexpr (_num_fields < 198) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 197, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 198, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198); - } - } else { - if constexpr (_num_fields < 200) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 199, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 200, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200); - } - } - } - } else { - if constexpr (_num_fields < 205) { - if constexpr (_num_fields < 203) { - if constexpr (_num_fields < 202) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 201, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 202, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202); - } - } else { - if constexpr (_num_fields < 204) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 203, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 204, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204); - } - } - } else { - if constexpr (_num_fields < 207) { - if constexpr (_num_fields < 206) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 205, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 206, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206); - } - } else { - if constexpr (_num_fields < 208) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 207, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 208, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208); - } - } - } - } - } else { - if constexpr (_num_fields < 217) { - if constexpr (_num_fields < 213) { - if constexpr (_num_fields < 211) { - if constexpr (_num_fields < 210) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 209, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 210, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210); - } - } else { - if constexpr (_num_fields < 212) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 211, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 212, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212); - } - } - } else { - if constexpr (_num_fields < 215) { - if constexpr (_num_fields < 214) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 213, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 214, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214); - } - } else { - if constexpr (_num_fields < 216) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 215, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 216, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216); - } - } - } - } else { - if constexpr (_num_fields < 221) { - if constexpr (_num_fields < 219) { - if constexpr (_num_fields < 218) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 217, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 218, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218); - } - } else { - if constexpr (_num_fields < 220) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 219, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 220, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220); - } - } - } else { - if constexpr (_num_fields < 223) { - if constexpr (_num_fields < 222) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 221, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 222, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222); - } - } else { - if constexpr (_num_fields < 224) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 223, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 224, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224); - } - } - } - } - } - } else { - if constexpr (_num_fields < 241) { - if constexpr (_num_fields < 233) { - if constexpr (_num_fields < 229) { - if constexpr (_num_fields < 227) { - if constexpr (_num_fields < 226) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 225, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 226, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226); - } - } else { - if constexpr (_num_fields < 228) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 227, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 228, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228); - } - } - } else { - if constexpr (_num_fields < 231) { - if constexpr (_num_fields < 230) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 229, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 230, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230); - } - } else { - if constexpr (_num_fields < 232) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 231, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 232, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232); - } - } - } - } else { - if constexpr (_num_fields < 237) { - if constexpr (_num_fields < 235) { - if constexpr (_num_fields < 234) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 233, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 234, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234); - } - } else { - if constexpr (_num_fields < 236) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 235, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 236, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236); - } - } - } else { - if constexpr (_num_fields < 239) { - if constexpr (_num_fields < 238) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 237, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 238, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238); - } - } else { - if constexpr (_num_fields < 240) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 239, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 240, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240); - } - } - } - } - } else { - if constexpr (_num_fields < 249) { - if constexpr (_num_fields < 245) { - if constexpr (_num_fields < 243) { - if constexpr (_num_fields < 242) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 241, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 242, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242); - } - } else { - if constexpr (_num_fields < 244) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 243, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 244, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244); - } - } - } else { - if constexpr (_num_fields < 247) { - if constexpr (_num_fields < 246) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 245, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244, - f245); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 246, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244, - f245, f246); - } - } else { - if constexpr (_num_fields < 248) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 247, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244, - f245, f246, f247); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 248, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244, - f245, f246, f247, f248); - } - } - } - } else { - if constexpr (_num_fields < 253) { - if constexpr (_num_fields < 251) { - if constexpr (_num_fields < 250) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 249, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244, - f245, f246, f247, f248, f249); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 250, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244, - f245, f246, f247, f248, f249, f250); - } - } else { - if constexpr (_num_fields < 252) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 251, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244, - f245, f246, f247, f248, f249, f250, f251); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 252, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244, - f245, f246, f247, f248, f249, f250, f251, f252); - } - } - } else { - if constexpr (_num_fields < 255) { - if constexpr (_num_fields < 254) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 253, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244, - f245, f246, f247, f248, f249, f250, f251, f252, f253); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 254, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244, - f245, f246, f247, f248, f249, f250, f251, f252, f253, - f254); - } - } else { - if constexpr (_num_fields < 256) { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 255, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244, - f245, f246, f247, f248, f249, f250, f251, f252, f253, - f254, f255); - } else { - RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( - 256, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, - f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, - f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, - f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, - f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, - f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, - f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, - f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, - f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, - f101, f102, f103, f104, f105, f106, f107, f108, f109, - f110, f111, f112, f113, f114, f115, f116, f117, f118, - f119, f120, f121, f122, f123, f124, f125, f126, f127, - f128, f129, f130, f131, f132, f133, f134, f135, f136, - f137, f138, f139, f140, f141, f142, f143, f144, f145, - f146, f147, f148, f149, f150, f151, f152, f153, f154, - f155, f156, f157, f158, f159, f160, f161, f162, f163, - f164, f165, f166, f167, f168, f169, f170, f171, f172, - f173, f174, f175, f176, f177, f178, f179, f180, f181, - f182, f183, f184, f185, f186, f187, f188, f189, f190, - f191, f192, f193, f194, f195, f196, f197, f198, f199, - f200, f201, f202, f203, f204, f205, f206, f207, f208, - f209, f210, f211, f212, f213, f214, f215, f216, f217, - f218, f219, f220, f221, f222, f223, f224, f225, f226, - f227, f228, f229, f230, f231, f232, f233, f234, f235, - f236, f237, f238, f239, f240, f241, f242, f243, f244, - f245, f246, f247, f248, f249, f250, f251, f252, f253, - f254, f255, f256); - } - } - } - } - } - } - } - } - } -} - -// End of boilerplate code - -#undef RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS - template auto bind_to_tuple(T& _t) { - return bind_to_tuple_impl>(_t); +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + return cpp20::bind_to_tuple(_t); +#else + return cpp26::bind_to_tuple(_t); +#endif } template diff --git a/include/rfl/internal/concat_literals.hpp b/include/rfl/internal/concat_literals.hpp new file mode 100644 index 000000000..8f1cbbe2a --- /dev/null +++ b/include/rfl/internal/concat_literals.hpp @@ -0,0 +1,45 @@ +#ifndef RFL_INTERNAL_CONCATLITERALS_HPP_ +#define RFL_INTERNAL_CONCATLITERALS_HPP_ + +#include "../Literal.hpp" +#include "StringLiteral.hpp" + +namespace rfl::internal { + +// We don't want the operator+ to apply to normal literals, +// so we introduce this wrapper. +template +struct LiteralWrapper { + Literal<_names...> literal_; +}; + +template +consteval auto wrap_literal(const Literal<_names...>& _literal) { + return LiteralWrapper<_names...>{_literal}; +} + +template +consteval auto operator+(const LiteralWrapper<_names1...>&, + const LiteralWrapper<_names2...>&) { + return LiteralWrapper<_names1..., _names2...>{ + rfl::Literal<_names1..., _names2...>()}; +} + +template +consteval auto concat_literals(const Head& _head, const Tail&... _tail) { + return (wrap_literal(_head) + ... + wrap_literal(_tail)).literal_; +} + +// Special case - every literal contains exactly one value. +template +consteval auto concat_literals(const rfl::Literal<_head>&, + const rfl::Literal<_tail>&...) { + return rfl::Literal<_head, _tail...>(); +} + +// Special case - no literals. +consteval inline auto concat_literals() { return rfl::Literal<>(); } + +} // namespace rfl::internal + +#endif diff --git a/include/rfl/internal/copy_flattened_tuple_to_named_tuple.hpp b/include/rfl/internal/copy_flattened_tuple_to_named_tuple.hpp index 543f1e18e..5f3a13926 100644 --- a/include/rfl/internal/copy_flattened_tuple_to_named_tuple.hpp +++ b/include/rfl/internal/copy_flattened_tuple_to_named_tuple.hpp @@ -8,8 +8,7 @@ #include "../make_named_tuple.hpp" #include "lit_name.hpp" -namespace rfl { -namespace internal { +namespace rfl::internal { template auto copy_one_element(const auto& _flattened_tuple) { @@ -26,11 +25,9 @@ auto copy_flattened_tuple_to_named_tuple(const auto& _flattened_tuple) { return [&](std::integer_sequence) { return make_named_tuple( copy_one_element(_flattened_tuple)...); - } - (std::make_integer_sequence()); + }(std::make_integer_sequence()); } -} // namespace internal -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/internal/copy_to_field_tuple.hpp b/include/rfl/internal/copy_to_field_tuple.hpp index 3e8ae3db9..0e9dab58d 100644 --- a/include/rfl/internal/copy_to_field_tuple.hpp +++ b/include/rfl/internal/copy_to_field_tuple.hpp @@ -3,8 +3,7 @@ #include "move_to_field_tuple.hpp" -namespace rfl { -namespace internal { +namespace rfl::internal { template auto copy_to_field_tuple(const T& _t) { @@ -12,7 +11,6 @@ auto copy_to_field_tuple(const T& _t) { return move_to_field_tuple(std::move(t)); } -} // namespace internal -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/internal/cpp20/Result.hpp b/include/rfl/internal/cpp20/Result.hpp new file mode 100644 index 000000000..1e210e967 --- /dev/null +++ b/include/rfl/internal/cpp20/Result.hpp @@ -0,0 +1,685 @@ +#ifndef RFL_INTERNAL_CPP20_RESULT_HPP_ +#define RFL_INTERNAL_CPP20_RESULT_HPP_ + +#include +#include +#include +#include +#include + +#include "../Error.hpp" + +namespace rfl::internal::cpp20 { + +template +struct Unexpected { + /// Constructs an Unexpected object with the given error (perfect forwarding). + /// @param _err The error to store in this Unexpected object. + Unexpected(E&& _err) : err_{std::forward(_err)} {} + + /// Constructs an Unexpected object with the given error (copy). + /// @param _err The error to store in this Unexpected object (copy) + Unexpected(const E& _err) : err_{_err} {} + + /// Move constructor. + /// @param _other The Unexpected object to move from + Unexpected(Unexpected&&) = default; + + /// Copy constructor. + /// @param _other The Unexpected object to copy from + Unexpected(const Unexpected&) = default; + + /// Move assignment operator. + /// @param _other The Unexpected object to move from + Unexpected& operator=(Unexpected&&) = default; + + /// Copy assignment operator. + /// @param _other The Unexpected object to copy from + Unexpected& operator=(const Unexpected&) = default; + + /// Returns the error stored in this Unexpected object (const reference). + const E& error() const& { return err_; } + + /// Returns the error stored in this Unexpected object (rvalue reference). + E&& error() && { return std::move(err_); } + + /// Returns the error stored in this Unexpected object (lvalue reference). + E& error() & { return err_; } + + private: + E err_; +}; + +/// The Result class is used for monadic error handling. +/// It can either contain a value of type T (indicating success) or an Error +/// (indicating failure). The class provides various methods for chaining +/// operations, transforming values, and handling errors in a functional style. +template +class Result { + static_assert(!std::is_same(), "The result type cannot be Error."); + + using TOrErr = std::array; + + public: + using value_type = T; + using error_type = Error; + /// @brief Constructs a successful Result holding a copy of the given value. + /// @param _val The value to copy into the Result. + Result(const T& _val) : success_(true) { new (&get_t()) T(_val); } + + /// @brief Constructs a successful Result by moving the given value. + /// @param _val The value to move into the Result. + Result(T&& _val) noexcept : success_(true) { + new (&get_t()) T(std::move(_val)); + } + + /// @brief Constructs an unsuccessful Result holding a copy of the given + /// error. + /// @param _err The Unexpected error to copy into the Result. + Result(const Unexpected& _err) : success_(false) { + new (&get_err()) Error(_err.error()); + } + + /// @brief Constructs an unsuccessful Result by moving the given error. + /// @param _err The Unexpected error to move into the Result. + Result(Unexpected&& _err) : success_(false) { + new (&get_err()) Error(std::move(_err.error())); + } + + /// @brief Move constructor. Transfers ownership of the value or error from + /// another Result. + /// @param _other The Result to move from. After the move, _other is in a + /// valid but unspecified state. + Result(Result&& _other) noexcept : success_(_other.success_) { + move_from_other(_other); + } + + /// @brief Copy constructor for Result. + /// @param _other The other Result object to copy from. + /// @details Copies the success state and the contained value (if any) from + /// another Result of the same type. + Result(const Result& _other) : success_(_other.success_) { + copy_from_other(_other); + } + + /// @brief Move constructor template for Result from a convertible type. + /// @tparam U The type of the value contained in the other Result. + /// @param _other The other Result object to move from. + /// @details Constructs a Result by moving from a Result, where U is + /// convertible to T. The contained value is transformed and moved into the + /// new Result. If the other Result contains an error, + /// the error is propagated to this Result. + template + requires std::is_convertible_v + Result(Result&& _other) : success_(_other && true) { + auto temp = std::forward >(_other).transform( + [](U&& _u) { return T(std::forward(_u)); }); + move_from_other(temp); + } + + /// @brief Copy constructor template for Result from a convertible type. + /// @tparam U The type of the value contained in the other Result. + /// @param _other The other Result object to copy from. + /// @details Constructs a Result by copying from a Result, where U is + /// convertible to T. The contained value is transformed and copied into the + /// new Result. If the other Result contains an error, the error is propagated + /// to this Result. + template + requires std::is_convertible_v + Result(const Result& _other) : success_(_other && true) { + auto temp = _other.transform([](const U& _u) { return T(_u); }); + move_from_other(temp); + } + + /// @brief Destructor for Result. + /// @details Destroys the contained value (if any) and releases any resources + /// held by the Result. + ~Result() { destroy(); } + + /// @brief Monadic operation that applies a function to the contained value if + /// the result is successful. + /// + /// This overload is for rvalue-qualified objects (i.e., temporaries or + /// moved-from objects). If the Result holds a value (success_), the provided + /// function F is invoked with the value (moved), and its result (which must + /// be another Result) is returned. If the Result holds an error, the error + /// is propagated to the returned Result. + /// + /// @tparam F A callable type accepting T and returning Result. + /// @param _f The function to apply to the contained value if present. + /// @return Result The result of applying _f to the value, or propagating + /// the error. + template + auto and_then(const F& _f) && { + /// Result_U is expected to be of type Result. + using Result_U = typename std::invoke_result::type; + if (success_) { + return Result_U(_f(std::move(*this).get_t())); + } else { + return Result_U(std::move(*this).get_err()); + } + } + + /// @brief Monadic operation that applies a function to the contained value if + /// the result is successful. + /// + /// This overload is for const lvalue-qualified objects (i.e., non-modifiable + /// references). If the Result holds a value (success_), the provided function + /// F is invoked with the value, and its result (which must be another + /// Result) is returned. If the Result holds an error, the error is + /// propagated to the returned Result. + /// + /// @tparam F A callable type accepting T and returning Result. + /// @param _f The function to apply to the contained value if present. + /// @return Result The result of applying _f to the value, or propagating + /// the error. + template + auto and_then(const F& _f) const& { + /// Result_U is expected to be of type Result. + using Result_U = typename std::invoke_result::type; + if (success_) { + return Result_U(_f(get_t())); + } else { + return Result_U(get_err()); + } + } + + /// Returns true if the result contains a value, false otherwise. + operator bool() const noexcept { return success_; } + + /// Allows access to the underlying value. Careful: Will result in undefined + /// behavior, if the result contains an error. + T&& operator*() && noexcept { return std::move(*this).get_t(); } + + /// Allows access to the underlying value. Careful: Will result in undefined + /// behavior, if the result contains an error. + T& operator*() & noexcept { return get_t(); } + + /// Allows read access to the underlying value. Careful: Will result in + /// undefined behavior, if the result contains an error. + const T& operator*() const& noexcept { return get_t(); } + + /// @brief Copy assignment operator. + /// + /// Assigns the contents of another Result to this object. If the source + /// and destination are the same, no action is taken. Otherwise, destroys the + /// current contents, copies the success state, and copies the underlying + /// value or error from the other object. + /// + /// @param _other The Result object to copy from. + /// @return Reference to this Result. + Result& operator=(const Result& _other) { + if (this == &_other) { + return *this; + } + destroy(); + success_ = _other.success_; + copy_from_other(_other); + return *this; + } + + /// @brief Move assignment operator. + /// + /// Assigns the contents of another Result to this object by moving. If the + /// source and destination are the same, no action is taken. Otherwise, + /// destroys the current contents, copies the success state, and moves the + /// underlying value or error from the other object. + /// + /// @param _other The Result object to move from. + /// @return Reference to this Result. + Result& operator=(Result&& _other) noexcept { + if (this == &_other) { + return *this; + } + destroy(); + success_ = _other.success_; + move_from_other(_other); + return *this; + } + + /// @brief Move assignment from Unexpected. + /// + /// Assigns an error to this Result by moving from an Unexpected + /// object. Destroys the current contents, sets the state to failure, and + /// constructs the error in place. + /// + /// @param _err The Unexpected object to move the error from. + /// @return Reference to this Result. + Result& operator=(Unexpected&& _err) noexcept { + destroy(); + success_ = false; + new (&get_err()) Error(_err.error()); + return *this; + } + + /// @brief Copy assignment from Unexpected. + /// + /// Assigns an error to this Result by copying from an Unexpected + /// object. Destroys the current contents, sets the state to failure, and + /// constructs the error in place. + /// + /// @param _err The Unexpected object to copy the error from. + /// @return Reference to this Result. + Result& operator=(const Unexpected& _err) noexcept { + destroy(); + success_ = false; + new (&get_err()) Error(_err.error()); + return *this; + } + + /// @brief Assigns the underlying object from another Result. + /// @tparam U The type of the value in the other Result. + /// @param _other The other Result to assign from. + /// @return Reference to this Result after assignment. + /// @details This assignment operator allows assigning from a Result where + /// U is convertible to T. It transforms the contained value (if any) from U + /// to T, destroys the current value, and moves the result. + template + requires std::is_convertible_v + auto& operator=(const Result& _other) { + const auto to_t = [](const U& _u) -> T { return _u; }; + auto temp = _other.transform(to_t); + destroy(); + success_ = temp.success_; + move_from_other(temp); + return *this; + } + + /// @brief Applies a recovery function if the Result is an error (rvalue + /// overload). + /// @tparam F The type of the recovery function. + /// @param _f A function that takes an Error and returns a Result. + /// @return Result after applying the recovery function if this is an + /// error, otherwise the contained value. + /// @details This method is used for error recovery in a monadic style. If the + /// Result is successful, it returns the value. If it contains an error, it + /// calls the provided function with the error and returns its result. + template + Result or_else(const F& _f) && { + if (success_) { + return std::move(*this).get_t(); + } else { + return _f(std::move(*this).get_err()); + } + } + + /// @brief Applies a recovery function if the Result is an error (const lvalue + /// overload). + /// @tparam F The type of the recovery function. + /// @param _f A function that takes an Error and returns a Result. + /// @return Result after applying the recovery function if this is an + /// error, otherwise the contained value. + /// @details This method is used for error recovery in a monadic style. If the + /// Result is successful, it returns the value. If it contains an error, it + /// calls the provided function with the error and returns its result. + template + Result or_else(const F& _f) const& { + if (success_) { + return get_t(); + } else { + return _f(get_err()); + } + } + + /// @brief Applies a transformation function to the contained value if + /// successful, moving the value. + /// @tparam F The type of the transformation function, must be callable as U + /// f(T). + /// @param _f The transformation function to apply to the contained value. + /// @return Result containing the transformed value if successful, + /// otherwise propagates the error. + /// @note This overload is for rvalue references (&&), so the contained value + /// is moved. + template + auto transform(const F& _f) && { + /// Result_U is expected to be of type Result. + using U = std::invoke_result_t; + if (success_) { + return Result(_f(std::move(*this).get_t())); + } else { + return Result(Unexpected(std::move(*this).get_err())); + } + } + + /// @brief Applies a transformation function to the contained value if + /// successful, without moving the value. + /// @tparam F The type of the transformation function, must be callable as U + /// f(T). + /// @param _f The transformation function to apply to the contained value. + /// @return Result containing the transformed value if successful, + /// otherwise propagates the error. + /// @note This overload is for const lvalue references (const&), so the + /// contained value is not moved. + template + auto transform(const F& _f) const& { + /// Result_U is expected to be of type Result. + using U = typename std::invoke_result::type; + if (success_) { + return Result(_f(get_t())); + } else { + return Result(get_err()); + } + } + + /// @brief Returns the value if the result does not contain an error. + /// + /// This method is an rvalue-qualified overload, meaning it can only be called + /// on temporary objects. If the result is successful (i.e., contains a + /// value), it returns the value by rvalue reference, transferring ownership + /// using std::move. If the result contains an error, it throws a + /// std::runtime_error with the error message. This is similar to the + /// .unwrap() method in Rust, providing a convenient way to extract the value + /// or fail fast if an error is present. + /// + /// @return T&& The contained value, moved from the result object. + /// @throws std::runtime_error if the result contains an error. + T&& value() && { + if (success_) { + return std::move(*this).get_t(); + } else { + throw std::runtime_error(get_err().what()); + } + } + + /// @brief Returns the value if the result does not contain an error. + /// + /// This method is an lvalue-qualified overload, meaning it can only be called + /// on non-temporary objects. If the result is successful (i.e., contains a + /// value), it returns the value by reference. If the result contains an + /// error, it throws a std::runtime_error with the error message. This method + /// is similar to .unwrap() in Rust, allowing safe extraction of the value or + /// exception-based error handling. + /// + /// @return T& Reference to the contained value. + /// @throws std::runtime_error if the result contains an error. + T& value() & { + if (success_) { + return get_t(); + } else { + throw std::runtime_error(get_err().what()); + } + } + + /// @brief Returns the value if the result does not contain an error. + /// + /// This method is a const lvalue-qualified overload, meaning it can only be + /// called on const, non-temporary objects. If the result is successful (i.e., + /// contains a value), it returns a const reference to the value. If the + /// result contains an error, it throws a std::runtime_error with the error + /// message. This method is similar to .unwrap() in Rust, providing + /// exception-based error handling for const objects. + /// + /// @return const T& Const reference to the contained value. + /// @throws std::runtime_error if the result contains an error. + const T& value() const& { + if (success_) { + return get_t(); + } else { + throw std::runtime_error(get_err().what()); + } + } + + /// @brief Returns the contained value if present, otherwise returns the + /// provided default value. + /// @param _default The value to return if the Result does not contain a + /// value. + /// @return The contained value if present, otherwise the provided default + /// value. + /// @note This overload is for rvalue-qualified objects and moves the + /// contained value. + T value_or(T&& _default) && noexcept { + if (success_) { + return std::move(*this).get_t(); + } else { + return std::forward(_default); + } + } + + /// @brief Returns the contained value if present, otherwise returns the + /// provided default value. + /// @param _default The value to return if the Expected does not contain a + /// value. + /// @return The contained value if present, otherwise the provided default + /// value. + /// @note This overload is for const lvalue-qualified objects and copies the + /// contained value. + T value_or(const T& _default) const& noexcept { + if (success_) { + return get_t(); + } else { + return _default; + } + } + + /// @brief Returns the contained error if present, otherwise returns the + /// provided default error. + /// @tparam G The type of the default error to return if no error is present. + /// @param _default The error to return if the Expected contains a value. + /// @return The contained error if present, otherwise the provided default + /// error. + /// @note This overload is for rvalue-qualified objects and moves the + /// contained error. + template + Error error_or(G&& _default) && { + if (success_) { + return std::forward(_default); + } else { + return std::move(*this).get_err(); + } + } + + // As specified by the standard : + // https://en.cppreference.com/w/cpp/utility/expected + // Observers + + /// @brief Returns the contained error if present, otherwise returns the + /// provided default error. + /// @tparam G The type of the default error to return if no error is present. + /// @param _default The error to return if the Expected contains a value. + /// @return The contained error if present, otherwise the provided default + /// error. + /// @note This overload is for const lvalue-qualified objects and copies the + /// contained error. + template + Error error_or(G&& _default) const& { + if (success_) { + return std::forward(_default); + } else { + return get_err(); + } + } + + /// @brief Checks whether the Expected contains a value. + /// @return true if the Expected contains a value, false if it contains an + /// error. + bool has_value() const noexcept { return success_; } + + /// @brief Returns the contained error, moving it if present. + /// @return The contained error, moved from the Expected. + /// @throws std::runtime_error if the Expected contains a value instead of an + /// error. + Error&& error() && { + if (success_) throw std::runtime_error("Expected does not contain value"); + return std::move(*this).get_err(); + } + + /// @brief Returns the contained error by reference. + /// @return Reference to the contained error. + /// @throws std::runtime_error if the Expected contains a value instead of an + /// error. + Error& error() & { + if (success_) throw std::runtime_error("Expected does not contain value"); + return get_err(); + } + + /// @brief Returns the contained error by const reference. + /// @return Const reference to the contained error. + /// @throws std::runtime_error if the Expected contains a value instead of an + /// error. + const Error& error() const& { + if (success_) throw std::runtime_error("Expected does not contain value"); + return get_err(); + } + + /// @brief Provides pointer-like access to the contained value. + /// @return Pointer to the contained value of type T. + T* operator->() noexcept { return &get_t(); } + + /// @brief Provides pointer-like access to the contained value (const + /// overload). + /// @return Const pointer to the contained value of type T. + const T* operator->() const noexcept { return &get_t(); } + + /** + * @brief Transforms the error contained in this Result using the provided + * function, if there is an error. + * + * This method is an rvalue overload and allows the caller to provide a + * function that takes an Error and returns a new Error. If this + * Result does not contain a value (i.e., it contains an error), the error is + * transformed using the provided function and a new Result is returned + * containing the transformed error. If this Result contains a value, the + * value is moved into a new Result and returned as-is. + * + * @tparam F A callable type that takes an Error and returns an + * Error. + * @param f The function to apply to the error if present. + * @return A new Result containing either the transformed error or the + * original value. + */ + template + Result transform_error(F&& f) && { + static_assert(std::is_same, Error>(), + "A function passed to transform_error must return an error."); + if (!has_value()) { + return Result{std::invoke(f, std::move(*this).get_err())}; + } else { + return Result{std::move(*this).value()}; + } + } + + /** + * @brief Transforms the error contained in this Result using the provided + * function, if there is an error (const lvalue overload). + * + * This method is a const lvalue overload and allows the caller to provide a + * function that takes an Error and returns a new Error. If this + * Result does not contain a value (i.e., it contains an error), the error is + * transformed using the provided function and a new Result is returned + * containing the transformed error. If this Result contains a value, the + * value is copied into a new Result and returned as-is. + * + * @tparam F A callable type that takes an Error and returns an + * Error. + * @param f The function to apply to the error if present. + * @return A new Result containing either the transformed error or the + * original value. + */ + template + Result transform_error(F&& f) const& { + static_assert(std::is_same, Error>(), + "A function passed to transform_error must return an error."); + if (!has_value()) { + return Result{std::invoke(f, get_err())}; + } else { + return Result{value()}; + } + } + + private: + /// @brief Copies the value or error from another Result instance. + /// @param _other The other Result to copy from. + /// @details If this Result holds a value, constructs a new T from the other's + /// value. Otherwise, constructs a new Error from the other's error. + void copy_from_other(const Result& _other) { + if (success_) { + new (&get_t()) T(_other.get_t()); + } else { + new (&get_err()) Error(_other.get_err()); + } + } + + /// @brief Destroys the contained value or error. + /// @details If this Result holds a value and T is destructible, calls the + /// destructor for T. Otherwise, calls the destructor for Error. + void destroy() { + if (success_) { + if constexpr (std::is_destructible_v >) { + get_t().~T(); + } + } else { + get_err().~Error(); + } + } + + /// @brief Retrieves the contained value as an rvalue reference. + /// @return Rvalue reference to the contained T. + /// @note Only call if this Result holds a value. + T&& get_t() && noexcept { + return std::move(*std::launder(reinterpret_cast(t_or_err_.data()))); + } + + /// @brief Retrieves the contained value as an lvalue reference. + /// @return Lvalue reference to the contained T. + /// @note Only call if this Result holds a value. + T& get_t() & noexcept { + return *std::launder(reinterpret_cast(t_or_err_.data())); + } + + /// @brief Retrieves the contained value as a const lvalue reference. + /// @return Const lvalue reference to the contained T. + /// @note Only call if this Result holds a value. + const T& get_t() const& noexcept { + return *std::launder(reinterpret_cast(t_or_err_.data())); + } + + /// @brief Retrieves the contained error as an rvalue reference. + /// @return Rvalue reference to the contained Error. + /// @note Only call if this Result holds an error. + Error&& get_err() && noexcept { + return std::move(*std::launder(reinterpret_cast(t_or_err_.data()))); + } + + /// @brief Retrieves the contained error as an lvalue reference. + /// @return Lvalue reference to the contained Error. + /// @note Only call if this Result holds an error. + Error& get_err() & noexcept { + return *std::launder(reinterpret_cast(t_or_err_.data())); + } + + /// @brief Retrieves the contained error as a const lvalue reference. + /// @return Const lvalue reference to the contained Error. + /// @note Only call if this Result holds an error. + const Error& get_err() const& noexcept { + return *std::launder(reinterpret_cast(t_or_err_.data())); + } + + /// @brief Moves the contents from another Result instance. + /// + /// This method transfers ownership of the value or error from the given + /// Result reference (_other) into this instance. If this Result holds a + /// successful value (success_ is true), it move-constructs the value of type + /// T from _other into this instance. Otherwise, it move-constructs the Error + /// from _other. This operation does not throw exceptions. + /// + /// @param _other Reference to another Result to move from. + /// @note After this operation, the state of _other is valid but unspecified. + /// @note This function is noexcept and should not throw exceptions. + void move_from_other(Result& _other) noexcept { + if (success_) { + new (&get_t()) T(std::move(_other.get_t())); + } else { + new (&get_err()) Error(std::move(_other.get_err())); + } + } + + /// Signifies whether this was a success. + bool success_; + + /// The underlying data, can either be T or Error. + alignas(std::max(alignof(T), alignof(Error))) TOrErr t_or_err_; +}; + +} // namespace rfl::internal::cpp20 + +#endif diff --git a/include/rfl/internal/cpp20/bind_to_tuple.hpp b/include/rfl/internal/cpp20/bind_to_tuple.hpp new file mode 100644 index 000000000..9733f1dbe --- /dev/null +++ b/include/rfl/internal/cpp20/bind_to_tuple.hpp @@ -0,0 +1,4395 @@ +#ifndef RFL_INTERNAL_CPP20_BIND_TO_TUPLE_HPP_ +#define RFL_INTERNAL_CPP20_BIND_TO_TUPLE_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include +#include + +#include "../../Tuple.hpp" +#include "../../always_false.hpp" +#include "num_fields.hpp" + +namespace rfl::internal::cpp20 { + +#define RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( \ + n, ...) \ + auto& [__VA_ARGS__] = _t; \ + return [](auto&... _refs) { return rfl::make_tuple(&_refs...); }(__VA_ARGS__); + +// The following boilerplate code has been generated with +// scripts/bind_to_tuple_impl.py +template +auto bind_to_tuple_impl(auto& _t) { + if constexpr (_num_fields == 0) { + return rfl::make_tuple(); + } else { + if constexpr (_num_fields < 129) { + if constexpr (_num_fields < 65) { + if constexpr (_num_fields < 33) { + if constexpr (_num_fields < 17) { + if constexpr (_num_fields < 9) { + if constexpr (_num_fields < 5) { + if constexpr (_num_fields < 3) { + if constexpr (_num_fields < 2) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 1, f1); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 2, f1, f2); + } + } else { + if constexpr (_num_fields < 4) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 3, f1, f2, f3); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 4, f1, f2, f3, f4); + } + } + } else { + if constexpr (_num_fields < 7) { + if constexpr (_num_fields < 6) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 5, f1, f2, f3, f4, f5); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 6, f1, f2, f3, f4, f5, f6); + } + } else { + if constexpr (_num_fields < 8) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 7, f1, f2, f3, f4, f5, f6, f7); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 8, f1, f2, f3, f4, f5, f6, f7, f8); + } + } + } + } else { + if constexpr (_num_fields < 13) { + if constexpr (_num_fields < 11) { + if constexpr (_num_fields < 10) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 9, f1, f2, f3, f4, f5, f6, f7, f8, f9); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 10, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10); + } + } else { + if constexpr (_num_fields < 12) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 11, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 12, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12); + } + } + } else { + if constexpr (_num_fields < 15) { + if constexpr (_num_fields < 14) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 13, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 14, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14); + } + } else { + if constexpr (_num_fields < 16) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 15, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 16, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16); + } + } + } + } + } else { + if constexpr (_num_fields < 25) { + if constexpr (_num_fields < 21) { + if constexpr (_num_fields < 19) { + if constexpr (_num_fields < 18) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 17, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 18, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18); + } + } else { + if constexpr (_num_fields < 20) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 19, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 20, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20); + } + } + } else { + if constexpr (_num_fields < 23) { + if constexpr (_num_fields < 22) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 21, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 22, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22); + } + } else { + if constexpr (_num_fields < 24) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 23, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 24, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24); + } + } + } + } else { + if constexpr (_num_fields < 29) { + if constexpr (_num_fields < 27) { + if constexpr (_num_fields < 26) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 25, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 26, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26); + } + } else { + if constexpr (_num_fields < 28) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 27, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 28, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28); + } + } + } else { + if constexpr (_num_fields < 31) { + if constexpr (_num_fields < 30) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 29, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 30, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30); + } + } else { + if constexpr (_num_fields < 32) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 31, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 32, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32); + } + } + } + } + } + } else { + if constexpr (_num_fields < 49) { + if constexpr (_num_fields < 41) { + if constexpr (_num_fields < 37) { + if constexpr (_num_fields < 35) { + if constexpr (_num_fields < 34) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 33, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 34, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34); + } + } else { + if constexpr (_num_fields < 36) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 35, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 36, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36); + } + } + } else { + if constexpr (_num_fields < 39) { + if constexpr (_num_fields < 38) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 37, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 38, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38); + } + } else { + if constexpr (_num_fields < 40) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 39, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 40, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40); + } + } + } + } else { + if constexpr (_num_fields < 45) { + if constexpr (_num_fields < 43) { + if constexpr (_num_fields < 42) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 41, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 42, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42); + } + } else { + if constexpr (_num_fields < 44) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 43, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 44, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44); + } + } + } else { + if constexpr (_num_fields < 47) { + if constexpr (_num_fields < 46) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 45, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 46, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46); + } + } else { + if constexpr (_num_fields < 48) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 47, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 48, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48); + } + } + } + } + } else { + if constexpr (_num_fields < 57) { + if constexpr (_num_fields < 53) { + if constexpr (_num_fields < 51) { + if constexpr (_num_fields < 50) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 49, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 50, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50); + } + } else { + if constexpr (_num_fields < 52) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 51, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 52, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52); + } + } + } else { + if constexpr (_num_fields < 55) { + if constexpr (_num_fields < 54) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 53, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 54, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54); + } + } else { + if constexpr (_num_fields < 56) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 55, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 56, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56); + } + } + } + } else { + if constexpr (_num_fields < 61) { + if constexpr (_num_fields < 59) { + if constexpr (_num_fields < 58) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 57, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 58, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58); + } + } else { + if constexpr (_num_fields < 60) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 59, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 60, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60); + } + } + } else { + if constexpr (_num_fields < 63) { + if constexpr (_num_fields < 62) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 61, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 62, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62); + } + } else { + if constexpr (_num_fields < 64) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 63, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 64, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64); + } + } + } + } + } + } + } else { + if constexpr (_num_fields < 97) { + if constexpr (_num_fields < 81) { + if constexpr (_num_fields < 73) { + if constexpr (_num_fields < 69) { + if constexpr (_num_fields < 67) { + if constexpr (_num_fields < 66) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 65, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 66, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66); + } + } else { + if constexpr (_num_fields < 68) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 67, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 68, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68); + } + } + } else { + if constexpr (_num_fields < 71) { + if constexpr (_num_fields < 70) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 69, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 70, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70); + } + } else { + if constexpr (_num_fields < 72) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 71, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 72, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72); + } + } + } + } else { + if constexpr (_num_fields < 77) { + if constexpr (_num_fields < 75) { + if constexpr (_num_fields < 74) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 73, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 74, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74); + } + } else { + if constexpr (_num_fields < 76) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 75, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 76, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76); + } + } + } else { + if constexpr (_num_fields < 79) { + if constexpr (_num_fields < 78) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 77, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 78, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78); + } + } else { + if constexpr (_num_fields < 80) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 79, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 80, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80); + } + } + } + } + } else { + if constexpr (_num_fields < 89) { + if constexpr (_num_fields < 85) { + if constexpr (_num_fields < 83) { + if constexpr (_num_fields < 82) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 81, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 82, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82); + } + } else { + if constexpr (_num_fields < 84) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 83, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 84, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84); + } + } + } else { + if constexpr (_num_fields < 87) { + if constexpr (_num_fields < 86) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 85, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 86, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86); + } + } else { + if constexpr (_num_fields < 88) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 87, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 88, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88); + } + } + } + } else { + if constexpr (_num_fields < 93) { + if constexpr (_num_fields < 91) { + if constexpr (_num_fields < 90) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 89, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 90, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90); + } + } else { + if constexpr (_num_fields < 92) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 91, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 92, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92); + } + } + } else { + if constexpr (_num_fields < 95) { + if constexpr (_num_fields < 94) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 93, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 94, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94); + } + } else { + if constexpr (_num_fields < 96) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 95, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 96, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96); + } + } + } + } + } + } else { + if constexpr (_num_fields < 113) { + if constexpr (_num_fields < 105) { + if constexpr (_num_fields < 101) { + if constexpr (_num_fields < 99) { + if constexpr (_num_fields < 98) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 97, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 98, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98); + } + } else { + if constexpr (_num_fields < 100) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 99, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 100, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100); + } + } + } else { + if constexpr (_num_fields < 103) { + if constexpr (_num_fields < 102) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 101, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 102, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102); + } + } else { + if constexpr (_num_fields < 104) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 103, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 104, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104); + } + } + } + } else { + if constexpr (_num_fields < 109) { + if constexpr (_num_fields < 107) { + if constexpr (_num_fields < 106) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 105, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 106, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106); + } + } else { + if constexpr (_num_fields < 108) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 107, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 108, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108); + } + } + } else { + if constexpr (_num_fields < 111) { + if constexpr (_num_fields < 110) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 109, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 110, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110); + } + } else { + if constexpr (_num_fields < 112) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 111, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 112, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112); + } + } + } + } + } else { + if constexpr (_num_fields < 121) { + if constexpr (_num_fields < 117) { + if constexpr (_num_fields < 115) { + if constexpr (_num_fields < 114) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 113, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 114, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114); + } + } else { + if constexpr (_num_fields < 116) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 115, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 116, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116); + } + } + } else { + if constexpr (_num_fields < 119) { + if constexpr (_num_fields < 118) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 117, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 118, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118); + } + } else { + if constexpr (_num_fields < 120) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 119, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 120, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120); + } + } + } + } else { + if constexpr (_num_fields < 125) { + if constexpr (_num_fields < 123) { + if constexpr (_num_fields < 122) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 121, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 122, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122); + } + } else { + if constexpr (_num_fields < 124) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 123, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 124, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124); + } + } + } else { + if constexpr (_num_fields < 127) { + if constexpr (_num_fields < 126) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 125, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 126, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126); + } + } else { + if constexpr (_num_fields < 128) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 127, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 128, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128); + } + } + } + } + } + } + } + } else { + if constexpr (_num_fields < 193) { + if constexpr (_num_fields < 161) { + if constexpr (_num_fields < 145) { + if constexpr (_num_fields < 137) { + if constexpr (_num_fields < 133) { + if constexpr (_num_fields < 131) { + if constexpr (_num_fields < 130) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 129, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 130, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130); + } + } else { + if constexpr (_num_fields < 132) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 131, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 132, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132); + } + } + } else { + if constexpr (_num_fields < 135) { + if constexpr (_num_fields < 134) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 133, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 134, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134); + } + } else { + if constexpr (_num_fields < 136) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 135, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 136, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136); + } + } + } + } else { + if constexpr (_num_fields < 141) { + if constexpr (_num_fields < 139) { + if constexpr (_num_fields < 138) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 137, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 138, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138); + } + } else { + if constexpr (_num_fields < 140) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 139, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 140, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140); + } + } + } else { + if constexpr (_num_fields < 143) { + if constexpr (_num_fields < 142) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 141, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 142, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142); + } + } else { + if constexpr (_num_fields < 144) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 143, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 144, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144); + } + } + } + } + } else { + if constexpr (_num_fields < 153) { + if constexpr (_num_fields < 149) { + if constexpr (_num_fields < 147) { + if constexpr (_num_fields < 146) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 145, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 146, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146); + } + } else { + if constexpr (_num_fields < 148) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 147, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 148, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148); + } + } + } else { + if constexpr (_num_fields < 151) { + if constexpr (_num_fields < 150) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 149, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 150, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150); + } + } else { + if constexpr (_num_fields < 152) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 151, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 152, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152); + } + } + } + } else { + if constexpr (_num_fields < 157) { + if constexpr (_num_fields < 155) { + if constexpr (_num_fields < 154) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 153, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 154, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154); + } + } else { + if constexpr (_num_fields < 156) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 155, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 156, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156); + } + } + } else { + if constexpr (_num_fields < 159) { + if constexpr (_num_fields < 158) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 157, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 158, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158); + } + } else { + if constexpr (_num_fields < 160) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 159, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 160, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160); + } + } + } + } + } + } else { + if constexpr (_num_fields < 177) { + if constexpr (_num_fields < 169) { + if constexpr (_num_fields < 165) { + if constexpr (_num_fields < 163) { + if constexpr (_num_fields < 162) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 161, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 162, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162); + } + } else { + if constexpr (_num_fields < 164) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 163, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 164, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164); + } + } + } else { + if constexpr (_num_fields < 167) { + if constexpr (_num_fields < 166) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 165, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 166, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166); + } + } else { + if constexpr (_num_fields < 168) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 167, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 168, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168); + } + } + } + } else { + if constexpr (_num_fields < 173) { + if constexpr (_num_fields < 171) { + if constexpr (_num_fields < 170) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 169, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 170, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170); + } + } else { + if constexpr (_num_fields < 172) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 171, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 172, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172); + } + } + } else { + if constexpr (_num_fields < 175) { + if constexpr (_num_fields < 174) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 173, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 174, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174); + } + } else { + if constexpr (_num_fields < 176) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 175, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 176, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176); + } + } + } + } + } else { + if constexpr (_num_fields < 185) { + if constexpr (_num_fields < 181) { + if constexpr (_num_fields < 179) { + if constexpr (_num_fields < 178) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 177, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 178, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178); + } + } else { + if constexpr (_num_fields < 180) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 179, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 180, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180); + } + } + } else { + if constexpr (_num_fields < 183) { + if constexpr (_num_fields < 182) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 181, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 182, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182); + } + } else { + if constexpr (_num_fields < 184) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 183, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 184, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184); + } + } + } + } else { + if constexpr (_num_fields < 189) { + if constexpr (_num_fields < 187) { + if constexpr (_num_fields < 186) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 185, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 186, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186); + } + } else { + if constexpr (_num_fields < 188) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 187, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 188, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188); + } + } + } else { + if constexpr (_num_fields < 191) { + if constexpr (_num_fields < 190) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 189, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 190, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190); + } + } else { + if constexpr (_num_fields < 192) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 191, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 192, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192); + } + } + } + } + } + } + } else { + if constexpr (_num_fields < 225) { + if constexpr (_num_fields < 209) { + if constexpr (_num_fields < 201) { + if constexpr (_num_fields < 197) { + if constexpr (_num_fields < 195) { + if constexpr (_num_fields < 194) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 193, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 194, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194); + } + } else { + if constexpr (_num_fields < 196) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 195, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 196, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196); + } + } + } else { + if constexpr (_num_fields < 199) { + if constexpr (_num_fields < 198) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 197, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 198, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198); + } + } else { + if constexpr (_num_fields < 200) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 199, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 200, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200); + } + } + } + } else { + if constexpr (_num_fields < 205) { + if constexpr (_num_fields < 203) { + if constexpr (_num_fields < 202) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 201, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 202, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202); + } + } else { + if constexpr (_num_fields < 204) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 203, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 204, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204); + } + } + } else { + if constexpr (_num_fields < 207) { + if constexpr (_num_fields < 206) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 205, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 206, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206); + } + } else { + if constexpr (_num_fields < 208) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 207, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 208, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208); + } + } + } + } + } else { + if constexpr (_num_fields < 217) { + if constexpr (_num_fields < 213) { + if constexpr (_num_fields < 211) { + if constexpr (_num_fields < 210) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 209, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 210, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210); + } + } else { + if constexpr (_num_fields < 212) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 211, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 212, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212); + } + } + } else { + if constexpr (_num_fields < 215) { + if constexpr (_num_fields < 214) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 213, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 214, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214); + } + } else { + if constexpr (_num_fields < 216) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 215, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 216, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216); + } + } + } + } else { + if constexpr (_num_fields < 221) { + if constexpr (_num_fields < 219) { + if constexpr (_num_fields < 218) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 217, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 218, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218); + } + } else { + if constexpr (_num_fields < 220) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 219, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 220, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220); + } + } + } else { + if constexpr (_num_fields < 223) { + if constexpr (_num_fields < 222) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 221, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 222, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222); + } + } else { + if constexpr (_num_fields < 224) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 223, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 224, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224); + } + } + } + } + } + } else { + if constexpr (_num_fields < 241) { + if constexpr (_num_fields < 233) { + if constexpr (_num_fields < 229) { + if constexpr (_num_fields < 227) { + if constexpr (_num_fields < 226) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 225, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 226, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226); + } + } else { + if constexpr (_num_fields < 228) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 227, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 228, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228); + } + } + } else { + if constexpr (_num_fields < 231) { + if constexpr (_num_fields < 230) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 229, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 230, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230); + } + } else { + if constexpr (_num_fields < 232) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 231, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 232, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232); + } + } + } + } else { + if constexpr (_num_fields < 237) { + if constexpr (_num_fields < 235) { + if constexpr (_num_fields < 234) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 233, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 234, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234); + } + } else { + if constexpr (_num_fields < 236) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 235, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 236, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236); + } + } + } else { + if constexpr (_num_fields < 239) { + if constexpr (_num_fields < 238) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 237, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 238, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238); + } + } else { + if constexpr (_num_fields < 240) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 239, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 240, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240); + } + } + } + } + } else { + if constexpr (_num_fields < 249) { + if constexpr (_num_fields < 245) { + if constexpr (_num_fields < 243) { + if constexpr (_num_fields < 242) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 241, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 242, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242); + } + } else { + if constexpr (_num_fields < 244) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 243, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 244, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244); + } + } + } else { + if constexpr (_num_fields < 247) { + if constexpr (_num_fields < 246) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 245, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244, + f245); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 246, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244, + f245, f246); + } + } else { + if constexpr (_num_fields < 248) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 247, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244, + f245, f246, f247); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 248, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244, + f245, f246, f247, f248); + } + } + } + } else { + if constexpr (_num_fields < 253) { + if constexpr (_num_fields < 251) { + if constexpr (_num_fields < 250) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 249, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244, + f245, f246, f247, f248, f249); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 250, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244, + f245, f246, f247, f248, f249, f250); + } + } else { + if constexpr (_num_fields < 252) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 251, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244, + f245, f246, f247, f248, f249, f250, f251); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 252, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244, + f245, f246, f247, f248, f249, f250, f251, f252); + } + } + } else { + if constexpr (_num_fields < 255) { + if constexpr (_num_fields < 254) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 253, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244, + f245, f246, f247, f248, f249, f250, f251, f252, f253); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 254, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244, + f245, f246, f247, f248, f249, f250, f251, f252, f253, + f254); + } + } else { + if constexpr (_num_fields < 256) { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 255, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244, + f245, f246, f247, f248, f249, f250, f251, f252, f253, + f254, f255); + } else { + RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS( + 256, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, + f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, + f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, + f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, + f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, + f68, f69, f70, f71, f72, f73, f74, f75, f76, f77, f78, + f79, f80, f81, f82, f83, f84, f85, f86, f87, f88, f89, + f90, f91, f92, f93, f94, f95, f96, f97, f98, f99, f100, + f101, f102, f103, f104, f105, f106, f107, f108, f109, + f110, f111, f112, f113, f114, f115, f116, f117, f118, + f119, f120, f121, f122, f123, f124, f125, f126, f127, + f128, f129, f130, f131, f132, f133, f134, f135, f136, + f137, f138, f139, f140, f141, f142, f143, f144, f145, + f146, f147, f148, f149, f150, f151, f152, f153, f154, + f155, f156, f157, f158, f159, f160, f161, f162, f163, + f164, f165, f166, f167, f168, f169, f170, f171, f172, + f173, f174, f175, f176, f177, f178, f179, f180, f181, + f182, f183, f184, f185, f186, f187, f188, f189, f190, + f191, f192, f193, f194, f195, f196, f197, f198, f199, + f200, f201, f202, f203, f204, f205, f206, f207, f208, + f209, f210, f211, f212, f213, f214, f215, f216, f217, + f218, f219, f220, f221, f222, f223, f224, f225, f226, + f227, f228, f229, f230, f231, f232, f233, f234, f235, + f236, f237, f238, f239, f240, f241, f242, f243, f244, + f245, f246, f247, f248, f249, f250, f251, f252, f253, + f254, f255, f256); + } + } + } + } + } + } + } + } + } +} + +// End of boilerplate code + +#undef RFL_INTERNAL_TUPLE_VIEW_IF_YOU_SEE_AN_ERROR_REFER_TO_DOCUMENTATION_ON_C_ARRAYS + +template +auto bind_to_tuple(T& _t) { + return bind_to_tuple_impl>(_t); +} + +} // namespace rfl::internal::cpp20 + +#endif +#endif diff --git a/include/rfl/internal/get_fake_object.hpp b/include/rfl/internal/cpp20/get_fake_object.hpp similarity index 77% rename from include/rfl/internal/get_fake_object.hpp rename to include/rfl/internal/cpp20/get_fake_object.hpp index 27f7fc5b4..48775df3b 100644 --- a/include/rfl/internal/get_fake_object.hpp +++ b/include/rfl/internal/cpp20/get_fake_object.hpp @@ -1,8 +1,9 @@ -#ifndef RFL_INTERNAL_GETFAKEOBJECT_HPP_ -#define RFL_INTERNAL_GETFAKEOBJECT_HPP_ +#ifndef RFL_INTERNAL_CPP20_GETFAKEOBJECT_HPP_ +#define RFL_INTERNAL_CPP20_GETFAKEOBJECT_HPP_ -namespace rfl { -namespace internal { +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + +namespace rfl::internal::cpp20 { #if __GNUC__ #ifndef __clang__ @@ -40,7 +41,7 @@ consteval const T& get_fake_object() noexcept { #pragma warning(pop) #endif -} // namespace internal -} // namespace rfl +} // namespace rfl::internal::cpp20 #endif +#endif diff --git a/include/rfl/internal/cpp20/get_field_names.hpp b/include/rfl/internal/cpp20/get_field_names.hpp new file mode 100644 index 000000000..707a0590a --- /dev/null +++ b/include/rfl/internal/cpp20/get_field_names.hpp @@ -0,0 +1,141 @@ +#ifndef RFL_INTERNAL_CPP20_GETFIELDNAMES_HPP_ +#define RFL_INTERNAL_CPP20_GETFIELDNAMES_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include + +#if __has_include() +#include +#endif + +#include "../../Literal.hpp" +#include "../concat_literals.hpp" +#include "../is_flatten_field.hpp" +#include "../is_rename.hpp" +#include "get_ith_field_from_fake_object.hpp" +#include "num_fields.hpp" + +#if __GNUC__ +#ifndef __clang__ +#pragma GCC system_header +#endif +#endif + +namespace rfl::internal::cpp20 { + +template +struct Wrapper { + using Type = T; + T v; +}; + +template +Wrapper(T) -> Wrapper; + +// This workaround is necessary for clang. +template +constexpr auto wrap(const T& arg) noexcept { + return Wrapper{arg}; +} + +template +consteval auto get_field_name_str_view() { +#if __cpp_lib_source_location >= 201907L + const auto func_name = + std::string_view{std::source_location::current().function_name()}; +#elif defined(_MSC_VER) + // Officially, we only support MSVC versions that are modern enough to contain + // , but inofficially, this might work. + const auto func_name = std::string_view{__FUNCSIG__}; +#else + const auto func_name = std::string_view{__PRETTY_FUNCTION__}; +#endif +#if defined(__clang__) + const auto split = func_name.substr(0, func_name.size() - 2); + return split.substr(split.find_last_of(":.") + 1); +#elif defined(__GNUC__) + const auto split = func_name.substr(0, func_name.size() - 2); + return split.substr(split.find_last_of(":") + 1); +#elif defined(_MSC_VER) + const auto split = func_name.substr(0, func_name.size() - 7); + return split.substr(split.rfind("->") + 2); +#else + static_assert(false, + "You are using an unsupported compiler. Please use GCC, Clang " + "or MSVC or switch to the rfl::Field-syntax."); +#endif +} + +template +consteval auto get_field_name_str_lit() { + constexpr auto name = get_field_name_str_view(); + const auto to_str_lit = [&](std::index_sequence) { + return StringLiteral{name[Ns]...}; + }; + return to_str_lit(std::make_index_sequence{}); +} + +template +consteval auto get_field_names(); + +template +consteval auto get_field_name() { +#if defined(__clang__) + using Type = std::remove_cvref_t::Type>>; +#else + using Type = std::remove_cvref_t>; +#endif + if constexpr (is_rename_v) { + using Name = typename Type::Name; + return Name(); + } else if constexpr (is_flatten_field_v) { + return get_field_names>(); + } else { + return rfl::Literal()>(); + } +} + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wundefined-var-template" +#pragma clang diagnostic ignored "-Wundefined-inline" +#endif + +template +#if __GNUC__ +#ifndef __clang__ +[[gnu::no_sanitize_undefined]] +#endif +#endif +consteval auto get_field_names() { + using Type = std::remove_cvref_t; + if constexpr (std::is_pointer_v) { + return get_field_names>(); + } else { +#if defined(__clang__) + const auto get = [](std::index_sequence<_is...>) { + return concat_literals( + get_field_name())>()...); + }; +#else + const auto get = [](std::index_sequence<_is...>) { + return concat_literals( + get_field_name()>()...); + }; +#endif + return get(std::make_index_sequence>()); + } +} + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +} // namespace rfl::internal::cpp20 + +#endif +#endif diff --git a/include/rfl/internal/get_ith_field_from_fake_object.hpp b/include/rfl/internal/cpp20/get_ith_field_from_fake_object.hpp similarity index 99% rename from include/rfl/internal/get_ith_field_from_fake_object.hpp rename to include/rfl/internal/cpp20/get_ith_field_from_fake_object.hpp index 2820b6a6c..d29949677 100644 --- a/include/rfl/internal/get_ith_field_from_fake_object.hpp +++ b/include/rfl/internal/cpp20/get_ith_field_from_fake_object.hpp @@ -1,15 +1,17 @@ -#ifndef RFL_INTERNAL_GET_ITH_FIELD_FROM_FAKE_OBJECT_HPP_ -#define RFL_INTERNAL_GET_ITH_FIELD_FROM_FAKE_OBJECT_HPP_ +#ifndef RFL_INTERNAL_CPP20_GET_ITH_FIELD_FROM_FAKE_OBJECT_HPP_ +#define RFL_INTERNAL_CPP20_GET_ITH_FIELD_FROM_FAKE_OBJECT_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION #include #include -#include "../always_false.hpp" +#include "../../always_false.hpp" +#include "../nth_element.hpp" #include "get_fake_object.hpp" -#include "nth_element.hpp" #include "num_fields.hpp" -namespace rfl::internal { +namespace rfl::internal::cpp20 { template struct field_extractor { @@ -2845,6 +2847,7 @@ consteval bool ith_field_is_const() { } #endif -} // namespace rfl::internal +} // namespace rfl::internal::cpp20 #endif +#endif diff --git a/include/rfl/internal/cpp20/get_member_ptr_name.hpp b/include/rfl/internal/cpp20/get_member_ptr_name.hpp new file mode 100644 index 000000000..37e3a81da --- /dev/null +++ b/include/rfl/internal/cpp20/get_member_ptr_name.hpp @@ -0,0 +1,81 @@ +#ifndef RFL_INTERNAL_CPP20_GET_MEMBER_PTR_NAME_HPP_ +#define RFL_INTERNAL_CPP20_GET_MEMBER_PTR_NAME_HPP_ + +#include +#include + +#include "../StringLiteral.hpp" +#include "../is_field.hpp" +#include "../is_rename.hpp" +#include "../lit_name.hpp" + +#if __has_include() +#include +#endif + +namespace rfl::internal::cpp20 { + +template +consteval auto get_member_ptr_name_str_view() { +#if __cpp_lib_source_location >= 201907L + const auto func_name = + std::string_view{std::source_location::current().function_name()}; +#elif defined(_MSC_VER) + // Officially, we only support MSVC versions that are modern enough to contain + // , but inofficially, this might work. + const auto func_name = std::string_view{__FUNCSIG__}; +#else + const auto func_name = std::string_view{__PRETTY_FUNCTION__}; +#endif +#if defined(__clang__) + const auto split = func_name.substr(0, func_name.size() - 1); + return split.substr(split.find_last_of(":.") + 1); +#elif defined(__GNUC__) + const auto split = func_name.substr(0, func_name.size() - 1); + return split.substr(split.find_last_of(":.") + 1); +#elif defined(_MSC_VER) + auto split = func_name.substr(0, func_name.size() - 7); + auto pos = split.find_last_of(":"); + if (pos != std::string_view::npos) { + return split.substr(pos + 1); + } + return split; +#else + static_assert( + false, + "You are using an unsupported compiler. Please use GCC, Clang " + "or MSVC or explicitly tag your structs using 'Tag' or 'Name'."); +#endif +} + +template +struct member_type_helper; + +template +struct member_type_helper { + using ptr_type = std::remove_cvref_t; + using struct_type = std::remove_cvref_t; +}; + +template +using struct_type_t = member_type_helper::struct_type; + +template +using ptr_type_t = member_type_helper::ptr_type; + +template +consteval auto get_member_ptr_name() { + using Type = ptr_type_t; + if constexpr (is_rename_v || is_field_v) { + using Name = typename Type::Name; + return lit_name_v; + } else { + using StructType = struct_type_t; + constexpr auto name = get_member_ptr_name_str_view(); + return StringLiteral(name); + } +} + +} // namespace rfl::internal::cpp20 + +#endif diff --git a/include/rfl/internal/cpp20/get_type_name.hpp b/include/rfl/internal/cpp20/get_type_name.hpp new file mode 100644 index 000000000..8ce5a2a6f --- /dev/null +++ b/include/rfl/internal/cpp20/get_type_name.hpp @@ -0,0 +1,64 @@ +#ifndef RFL_INTERNAL_CPP20_GETTYPENAME_HPP_ +#define RFL_INTERNAL_CPP20_GETTYPENAME_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + +#include + +#include "../StringLiteral.hpp" + +#if __has_include() +#include +#endif + +namespace rfl::internal::cpp20 { + +template +consteval auto get_type_name_str_view() { +#if __cpp_lib_source_location >= 201907L + const auto func_name = + std::string_view{std::source_location::current().function_name()}; +#elif defined(_MSC_VER) + // Officially, we only support MSVC versions that are modern enough to contain + // , but inofficially, this might work. + const auto func_name = std::string_view{__FUNCSIG__}; +#else + const auto func_name = std::string_view{__PRETTY_FUNCTION__}; +#endif +#if defined(__clang__) + const auto split = func_name.substr(0, func_name.size() - 1); + return split.substr(split.find("T = ") + 4); +#elif defined(__GNUC__) + const auto split = func_name.substr(0, func_name.size() - 1); + return split.substr(split.find("T = ") + 4); +#elif defined(_MSC_VER) + auto split = func_name.substr(0, func_name.size() - 7); + split = split.substr(split.find("get_type_name_str_view<") + 23); + auto pos = split.find(" "); + if (pos != std::string_view::npos) { + return split.substr(pos + 1); + } + return split; +#else + static_assert( + false, + "You are using an unsupported compiler. Please use GCC, Clang " + "or MSVC or explicitly tag your structs using 'Tag' or 'Name'."); +#endif +} + +template +consteval auto get_type_name() { + static_assert(get_type_name_str_view() == "int", + "Expected 'int', got something else."); + constexpr auto name = get_type_name_str_view(); + const auto to_str_lit = [&](std::index_sequence) { + return StringLiteral{name[Ns]...}; + }; + return to_str_lit(std::make_index_sequence{}); +} + +} // namespace rfl::internal::cpp20 + +#endif +#endif diff --git a/include/rfl/internal/num_fields.hpp b/include/rfl/internal/cpp20/num_fields.hpp similarity index 97% rename from include/rfl/internal/num_fields.hpp rename to include/rfl/internal/cpp20/num_fields.hpp index 39de8b4a8..3864336e1 100644 --- a/include/rfl/internal/num_fields.hpp +++ b/include/rfl/internal/cpp20/num_fields.hpp @@ -1,5 +1,7 @@ -#ifndef RFL_INTERNAL_NUM_FIELDS_HPP_ -#define RFL_INTERNAL_NUM_FIELDS_HPP_ +#ifndef RFL_INTERNAL_CPP20_NUM_FIELDS_HPP_ +#define RFL_INTERNAL_CPP20_NUM_FIELDS_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION /* We infer the number of fields using by figuring out how many fields @@ -45,8 +47,7 @@ This is the purpose of get_nested_array_size(). #pragma clang diagnostic ignored "-Wundefined-inline" #endif -namespace rfl { -namespace internal { +namespace rfl::internal::cpp20 { template struct any_empty_base { @@ -206,11 +207,11 @@ struct CountFieldsHelper { template constexpr std::size_t num_fields = CountFieldsHelper::count_fields(); -} // namespace internal -} // namespace rfl +} // namespace rfl::internal::cpp20 #ifdef __clang__ #pragma clang diagnostic pop #endif #endif +#endif diff --git a/include/rfl/internal/cpp26/bind_to_tuple.hpp b/include/rfl/internal/cpp26/bind_to_tuple.hpp new file mode 100644 index 000000000..e98f3f2c8 --- /dev/null +++ b/include/rfl/internal/cpp26/bind_to_tuple.hpp @@ -0,0 +1,28 @@ +#ifndef RFL_INTERNAL_CPP26_BIND_TO_TUPLE_HPP_ +#define RFL_INTERNAL_CPP26_BIND_TO_TUPLE_HPP_ + +#ifdef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include +#include +#include +#include + +#include "../../Tuple.hpp" +#include "get_members.hpp" + +namespace rfl::internal::cpp26 { + +template +auto bind_to_tuple(T& _t) { + using Type = std::remove_cvref_t; + constexpr auto members = std::define_static_array(get_members()); + constexpr auto [... indices] = std::make_index_sequence(); + return rfl::make_tuple(&_t.[:members[indices]:]...); +} + +} // namespace rfl::internal::cpp26 + +#endif +#endif diff --git a/include/rfl/internal/cpp26/get_field_names.hpp b/include/rfl/internal/cpp26/get_field_names.hpp new file mode 100644 index 000000000..07d872f84 --- /dev/null +++ b/include/rfl/internal/cpp26/get_field_names.hpp @@ -0,0 +1,72 @@ +#ifndef RFL_INTERNAL_CPP26_GETFIELDNAMES_HPP_ +#define RFL_INTERNAL_CPP26_GETFIELDNAMES_HPP_ + +#ifdef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include +#include +#include +#include + +#include "../../Literal.hpp" +#include "../../Tuple.hpp" +#include "../StringLiteral.hpp" +#include "../concat_literals.hpp" +#include "../is_flatten_field.hpp" +#include "../is_rename.hpp" +#include "bind_to_tuple.hpp" +#include "get_members.hpp" + +namespace rfl::internal::cpp26 { + +template +consteval auto get_field_names(); + +template +consteval auto get_field_names_impl() { + using Type = std::remove_cvref_t>; + if constexpr (is_rename_v) { + using Name = typename Type::Name; + return Name(); + } else if constexpr (is_flatten_field_v) { + return get_field_names>(); + } else { + return FieldName(); + } +} + +template +consteval bool is_same() { + static_assert(_i == _j, "Mismatched lengths"); + return _i == _j; +} + +template +consteval auto get_field_names() { + using Type = std::remove_cvref_t; + if constexpr (std::is_pointer_v) { + return get_field_names>(); + } else { + constexpr auto members = std::define_static_array(get_members()); + + using TupleT = decltype(bind_to_tuple(std::declval())); + + static_assert(is_same>(), + "Number of members and tuple size mismatch"); + + constexpr auto [... is] = std::make_index_sequence(); + + return concat_literals( + get_field_names_impl< + tuple_element_t, + Literal< + StringLiteral( + std::meta::identifier_of(members[is]))>>()...); + } +} + +} // namespace rfl::internal::cpp26 + +#endif +#endif diff --git a/include/rfl/internal/cpp26/get_members.hpp b/include/rfl/internal/cpp26/get_members.hpp new file mode 100644 index 000000000..1a703b991 --- /dev/null +++ b/include/rfl/internal/cpp26/get_members.hpp @@ -0,0 +1,51 @@ +#ifndef RFL_INTERNAL_CPP26_GETMEMBERS_HPP_ +#define RFL_INTERNAL_CPP26_GETMEMBERS_HPP_ + +#ifdef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include + +namespace rfl::internal::cpp26 { + +template +consteval std::vector get_members() { + constexpr auto ctx = std::meta::access_context::current(); + + std::vector members; + + constexpr auto bases = + std::define_static_array(std::meta::bases_of(^^Type, ctx)); + + if constexpr (bases.size() > 0) { + const auto add_base_members = + [&](std::integral_constant) { + using BaseType = [:std::meta::type_of(bases[_i]):]; + constexpr auto base_members = + std::define_static_array(get_members()); + template for (const size_t j : + std::make_index_sequence()) { + members.push_back(base_members[j]); + }; + }; + + constexpr auto [... is] = std::make_index_sequence(); + + (add_base_members(std::integral_constant()), ...); + } + + constexpr auto nonstatic_members = std::define_static_array( + std::meta::nonstatic_data_members_of(^^Type, ctx)); + + template for (const size_t i : + std::make_index_sequence()) { + members.push_back(nonstatic_members[i]); + } + + return members; +} + +} // namespace rfl::internal::cpp26 + +#endif +#endif diff --git a/include/rfl/internal/cpp26/get_type_name.hpp b/include/rfl/internal/cpp26/get_type_name.hpp new file mode 100644 index 000000000..dbcb50678 --- /dev/null +++ b/include/rfl/internal/cpp26/get_type_name.hpp @@ -0,0 +1,38 @@ +#ifndef RFL_INTERNAL_CPP26_GETTYPENAME_HPP_ +#define RFL_INTERNAL_CPP26_GETTYPENAME_HPP_ + +#ifdef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include + +#include "../StringLiteral.hpp" + +namespace rfl::internal::cpp26 { + +template +consteval auto get_type_name() { + using Type = std::remove_cvref_t; + if constexpr (std::is_pointer_v) { + return get_type_name>(); + } else { + // TODO: Is there a way to get the name of the type without using + // compiler-specific extensions? +#if defined(__GNUC__) + constexpr auto display_string = std::meta::display_string_of(^^Type); + constexpr auto drop_last_char = + display_string.substr(0, display_string.size() - 1); + constexpr auto name = + drop_last_char.substr(drop_last_char.find("{aka ") + 5); + return StringLiteral(name); +#else + static_assert(false, + "You are using an unsupported compiler. Please use GCC or " + "explicitly tag your structs using 'Tag' or 'Name'."); +#endif + } +} +} // namespace rfl::internal::cpp26 + +#endif +#endif diff --git a/include/rfl/internal/cpp26/num_fields.hpp b/include/rfl/internal/cpp26/num_fields.hpp new file mode 100644 index 000000000..d96e0b946 --- /dev/null +++ b/include/rfl/internal/cpp26/num_fields.hpp @@ -0,0 +1,21 @@ +#ifndef RFL_INTERNAL_CPP26_NUM_FIELDS_HPP_ +#define RFL_INTERNAL_CPP26_NUM_FIELDS_HPP_ + +#ifdef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include + +#include "../../Tuple.hpp" +#include "bind_to_tuple.hpp" + +namespace rfl::internal::cpp26 { + +template +constexpr std::size_t num_fields = + tuple_size_v()))>; + +} // namespace rfl::internal::cpp26 + +#endif +#endif diff --git a/include/rfl/internal/enums/Names.hpp b/include/rfl/internal/enums/Names.hpp index a35944ad7..f20b1fbf0 100644 --- a/include/rfl/internal/enums/Names.hpp +++ b/include/rfl/internal/enums/Names.hpp @@ -7,10 +7,7 @@ #include #include "../../Literal.hpp" -//#include "../../config.hpp" -//#include "../../define_literal.hpp" #include "../../make_named_tuple.hpp" -//#include "../../thirdparty/enchantum/enchantum.hpp" #include "../StringLiteral.hpp" namespace rfl::internal::enums { @@ -66,4 +63,3 @@ names_to_underlying_enumerator_array( } // namespace rfl::internal::enums #endif - diff --git a/include/rfl/internal/enums/cpp20/enchantum.hpp b/include/rfl/internal/enums/cpp20/enchantum.hpp new file mode 100644 index 000000000..30c7e8ac0 --- /dev/null +++ b/include/rfl/internal/enums/cpp20/enchantum.hpp @@ -0,0 +1,35 @@ +#ifndef RFL_INTERNAL_ENUMS_CPP20_ENCHANTUM_HPP_ +#define RFL_INTERNAL_ENUMS_CPP20_ENCHANTUM_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + +// Enum values must be greater than or equal to RFL_ENUM_RANGE_MIN. +// By default, RFL_ENUM_RANGE_MIN is set to -256. +// To change the default minimum range for all enum types, redefine the macro +// RFL_ENUM_RANGE_MIN. +#if !defined(RFL_ENUM_RANGE_MIN) +#define RFL_ENUM_RANGE_MIN -256 +#endif + +// Enum values must be less than or equal to RFL_ENUM_RANGE_MAX. +// By default, RFL_ENUM_RANGE_MAX is set to 256. +// To change the default maximum range for all enum types, redefine the macro +// RFL_ENUM_RANGE_MAX. +#if !defined(RFL_ENUM_RANGE_MAX) +#define RFL_ENUM_RANGE_MAX 256 +#endif + +#ifdef ENCHANTUM_MIN_RANGE +#undef ENCHANTUM_MIN_RANGE +#endif +#define ENCHANTUM_MIN_RANGE RFL_ENUM_RANGE_MIN + +#ifdef ENCHANTUM_MAX_RANGE +#undef ENCHANTUM_MAX_RANGE +#endif +#define ENCHANTUM_MAX_RANGE RFL_ENUM_RANGE_MAX + +#include "../../../thirdparty/enchantum/enchantum.hpp" + +#endif +#endif diff --git a/include/rfl/internal/enums/cpp20/from_string.hpp b/include/rfl/internal/enums/cpp20/from_string.hpp new file mode 100644 index 000000000..b14315964 --- /dev/null +++ b/include/rfl/internal/enums/cpp20/from_string.hpp @@ -0,0 +1,21 @@ +#ifndef RFL_INTERNAL_ENUMS_CPP20_FROM_STRING_HPP_ +#define RFL_INTERNAL_ENUMS_CPP20_FROM_STRING_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include + +#include "enchantum.hpp" // NOLINT(unused-includes) + +namespace rfl::internal::enums::cpp20 { + +template +auto from_string(const std::string& _str) { + return enchantum::cast(_str); +} + +} // namespace rfl::internal::enums::cpp20 + +#endif +#endif diff --git a/include/rfl/internal/enums/cpp20/get_enum_names.hpp b/include/rfl/internal/enums/cpp20/get_enum_names.hpp new file mode 100644 index 000000000..e525f5fb0 --- /dev/null +++ b/include/rfl/internal/enums/cpp20/get_enum_names.hpp @@ -0,0 +1,106 @@ +#ifndef RFL_INTERNAL_ENUMS_CPP20_GET_ENUM_NAMES_HPP_ +#define RFL_INTERNAL_ENUMS_CPP20_GET_ENUM_NAMES_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include + +#include "../../../Literal.hpp" +#include "../Names.hpp" +#include "../is_flag_enum.hpp" +#include "enchantum.hpp" +#include "range_defined.hpp" + +// https://en.cppreference.com/w/cpp/language/static_cast: + +// 8) A value of integer or enumeration type can be converted to any complete +// enumeration type. + +// If the underlying type is not fixed, the behavior is undefined if the value +// of expression is out of range (the range is all values possible for the +// smallest bit-field large enough to hold all enumerators of the target +// enumeration). If the underlying type is fixed, the result is the same as +// converting the original value first to the underlying type of the enumeration +// and then to the enumeration type. + +// https://en.cppreference.com/w/cpp/language/enum + +// enum struct|class name { enumerator = constexpr , enumerator = constexpr , +// ... } (1) +// ... +// 1) declares a scoped enumeration type whose underlying type is int (the +// keywords class and struct are exactly equivalent) +// +// --> These rules taken together imply that if you EITHER fix the type OR you +// use a scoped integer, static_cast(some_integer_value) will always be +// defined. + +template + requires requires(E e) { + { e | e } -> std::same_as; + } +constexpr inline bool enchantum::is_bitflag = true; + +// Specialize the enchantum EnumTraits further, so rfl::config::enum_range +// works. +namespace enchantum { + +template + requires rfl::internal::enums::cpp20::range_defined +struct enum_traits { + static constexpr std::size_t prefix_length = 0; + + static constexpr auto min = rfl::config::enum_range::min; + static constexpr auto max = rfl::config::enum_range::max; +}; + +template + requires rfl::internal::enums::cpp20::range_defined +struct enum_traits { + static constexpr std::size_t prefix_length = 0; + + static constexpr auto min = rfl::config::enum_range::min; + static constexpr auto max = rfl::config::enum_range::max; +}; + +template + requires SignedEnum && (!EnumFixedUnderlying) && + rfl::internal::enums::cpp20::range_defined +struct enum_traits { + static constexpr auto min = rfl::config::enum_range::min; + static constexpr auto max = rfl::config::enum_range::max; +}; + +template + requires UnsignedEnum && (!EnumFixedUnderlying) && + rfl::internal::enums::cpp20::range_defined +struct enum_traits { + static constexpr auto min = rfl::config::enum_range::min; + static constexpr auto max = rfl::config::enum_range::max; +}; + +} // namespace enchantum + +namespace rfl::internal::enums::cpp20 { + +template +consteval auto get_enum_names() { + return [](std::index_sequence) { + constexpr auto& entries = enchantum::entries; + constexpr auto to_str_lit = + [](const char* name, std::index_sequence) { + return StringLiteral{name[Js]...}; + }; + return Names{})...>, + entries.size(), is_flag_enum, + entries[Is].first...>{}; + }(std::make_index_sequence>{}); +} +} // namespace rfl::internal::enums::cpp20 + +#endif +#endif diff --git a/include/rfl/internal/enums/cpp20/get_enum_range.hpp b/include/rfl/internal/enums/cpp20/get_enum_range.hpp new file mode 100644 index 000000000..57b2ea94d --- /dev/null +++ b/include/rfl/internal/enums/cpp20/get_enum_range.hpp @@ -0,0 +1,23 @@ +#ifndef RFL_INTERNAL_ENUMS_CPP20_GET_ENUM_RANGE_HPP_ +#define RFL_INTERNAL_ENUMS_CPP20_GET_ENUM_RANGE_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + +#include + +// Necessary to use enchantum::enum_traits +#include "get_enum_names.hpp" + +namespace rfl::internal::enums::cpp20 { + +// Returns the range of the given enum type as a pair of the minimum and maximum +template +constexpr auto get_enum_range() { + return std::make_pair(enchantum::enum_traits::min, + enchantum::enum_traits::max); +} + +} // namespace rfl::internal::enums::cpp20 + +#endif +#endif diff --git a/include/rfl/internal/enums/cpp20/range_defined.hpp b/include/rfl/internal/enums/cpp20/range_defined.hpp new file mode 100644 index 000000000..1b938affe --- /dev/null +++ b/include/rfl/internal/enums/cpp20/range_defined.hpp @@ -0,0 +1,20 @@ +#ifndef RFL_INTERNAL_ENUMS_CPP20_RANGE_DEFINED_HPP_ +#define RFL_INTERNAL_ENUMS_CPP20_RANGE_DEFINED_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + +#include "../../../config.hpp" + +namespace rfl::internal::enums::cpp20 { + +template +concept range_defined = requires { + { config::enum_range::min }; + + { config::enum_range::max }; +}; + +} // namespace rfl::internal::enums::cpp20 + +#endif +#endif diff --git a/include/rfl/internal/enums/cpp20/to_string.hpp b/include/rfl/internal/enums/cpp20/to_string.hpp new file mode 100644 index 000000000..6a39f4f42 --- /dev/null +++ b/include/rfl/internal/enums/cpp20/to_string.hpp @@ -0,0 +1,24 @@ +#ifndef RFL_INTERNAL_ENUMS_CPP20_TO_STRING_HPP_ +#define RFL_INTERNAL_ENUMS_CPP20_TO_STRING_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include + +#include "enchantum.hpp" // NOLINT(unused-includes) + +namespace rfl::internal::enums::cpp20 { + +template +auto to_string(const EnumType e) { + const auto s = enchantum::to_string(e); + return s.empty() + ? std::to_string(static_cast>(e)) + : std::string(s); +} + +} // namespace rfl::internal::enums::cpp20 + +#endif +#endif diff --git a/include/rfl/internal/enums/cpp26/from_string.hpp b/include/rfl/internal/enums/cpp26/from_string.hpp new file mode 100644 index 000000000..919be47c6 --- /dev/null +++ b/include/rfl/internal/enums/cpp26/from_string.hpp @@ -0,0 +1,27 @@ +#ifndef RFL_INTERNAL_ENUMS_CPP26_FROM_STRING_HPP_ +#define RFL_INTERNAL_ENUMS_CPP26_FROM_STRING_HPP_ + +#ifdef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include +#include +#include + +namespace rfl::internal::enums::cpp26 { + +template +std::optional from_string(const std::string& _str) { + template for (constexpr auto e : std::define_static_array( + std::meta::enumerators_of(^^EnumType))) { + if (_str == std::meta::identifier_of(e)) { + return [:e:]; + } + } + return std::nullopt; +} + +} // namespace rfl::internal::enums::cpp26 + +#endif +#endif diff --git a/include/rfl/internal/enums/cpp26/get_enum_names.hpp b/include/rfl/internal/enums/cpp26/get_enum_names.hpp new file mode 100644 index 000000000..30d05e312 --- /dev/null +++ b/include/rfl/internal/enums/cpp26/get_enum_names.hpp @@ -0,0 +1,32 @@ +#ifndef RFL_INTERNAL_ENUMS_CPP26_GET_ENUM_NAMES_HPP_ +#define RFL_INTERNAL_ENUMS_CPP26_GET_ENUM_NAMES_HPP_ + +#ifdef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include +#include + +#include "../../../Literal.hpp" +#include "../Names.hpp" +#include "../is_flag_enum.hpp" + +namespace rfl::internal::enums::cpp26 { + +template +consteval auto get_enum_names() { + constexpr auto enumerators = + std::define_static_array(std::meta::enumerators_of(^^EnumType)); + + constexpr auto [... is] = std::make_index_sequence(); + + return Names< + EnumType, + Literal(std::meta::identifier_of(enumerators[is]))...>, + enumerators.size(), is_flag_enum, ([:enumerators[is]:])...>{}; +} +} // namespace rfl::internal::enums::cpp26 + +#endif +#endif diff --git a/include/rfl/internal/enums/cpp26/get_enum_range.hpp b/include/rfl/internal/enums/cpp26/get_enum_range.hpp new file mode 100644 index 000000000..15ee140fa --- /dev/null +++ b/include/rfl/internal/enums/cpp26/get_enum_range.hpp @@ -0,0 +1,23 @@ +#ifndef RFL_INTERNAL_ENUMS_CPP26_GET_ENUM_RANGE_HPP_ +#define RFL_INTERNAL_ENUMS_CPP26_GET_ENUM_RANGE_HPP_ + +#ifdef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include +#include + +namespace rfl::internal::enums::cpp26 { + +// Returns the range of the given enum type as a pair of the minimum and maximum +template +constexpr auto get_enum_range() { + return std::make_pair( + std::numeric_limits>::min(), + std::numeric_limits>::max()); +} + +} // namespace rfl::internal::enums::cpp26 + +#endif +#endif diff --git a/include/rfl/internal/enums/cpp26/to_string.hpp b/include/rfl/internal/enums/cpp26/to_string.hpp new file mode 100644 index 000000000..87b1f5fd9 --- /dev/null +++ b/include/rfl/internal/enums/cpp26/to_string.hpp @@ -0,0 +1,27 @@ +#ifndef RFL_INTERNAL_ENUMS_CPP26_TO_STRING_HPP_ +#define RFL_INTERNAL_ENUMS_CPP26_TO_STRING_HPP_ + +#ifdef REFLECTCPP_USE_CPP26_REFLECTION + +#include +#include +#include + +namespace rfl::internal::enums::cpp26 { + +template + requires std::is_enum_v +std::string to_string(const EnumType _val) { + template for (constexpr auto e : std::define_static_array( + std::meta::enumerators_of(^^EnumType))) { + if (_val == [:e:]) { + return std::string(std::meta::identifier_of(e)); + } + } + return std::to_string(static_cast>(_val)); +} + +} // namespace rfl::internal::enums::cpp26 + +#endif +#endif diff --git a/include/rfl/internal/enums/from_string.hpp b/include/rfl/internal/enums/from_string.hpp new file mode 100644 index 000000000..160363283 --- /dev/null +++ b/include/rfl/internal/enums/from_string.hpp @@ -0,0 +1,23 @@ +#ifndef RFL_INTERNAL_ENUMS_FROM_STRING_HPP_ +#define RFL_INTERNAL_ENUMS_FROM_STRING_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION +#include "cpp20/from_string.hpp" +#else +#include "cpp26/from_string.hpp" +#endif + +namespace rfl::internal::enums { + +template +auto from_string(const std::string& _str) { +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + return cpp20::from_string(_str); +#else + return cpp26::from_string(_str); +#endif +} + +} // namespace rfl::internal::enums + +#endif diff --git a/include/rfl/internal/enums/get_enum_names.hpp b/include/rfl/internal/enums/get_enum_names.hpp index b81a71533..cb91ffaa4 100644 --- a/include/rfl/internal/enums/get_enum_names.hpp +++ b/include/rfl/internal/enums/get_enum_names.hpp @@ -1,129 +1,23 @@ #ifndef RFL_INTERNAL_ENUMS_GET_ENUM_NAMES_HPP_ #define RFL_INTERNAL_ENUMS_GET_ENUM_NAMES_HPP_ -// Enum values must be greater than or equal to RFL_ENUM_RANGE_MIN. -// By default, RFL_ENUM_RANGE_MIN is set to -256. -// To change the default minimum range for all enum types, redefine the macro -// RFL_ENUM_RANGE_MIN. -#if !defined(RFL_ENUM_RANGE_MIN) -#define RFL_ENUM_RANGE_MIN -256 +#ifndef REFLECTCPP_USE_CPP26_REFLECTION +#include "cpp20/get_enum_names.hpp" +#else +#include "cpp26/get_enum_names.hpp" #endif -// Enum values must be less than or equal to RFL_ENUM_RANGE_MAX. -// By default, RFL_ENUM_RANGE_MAX is set to 256. -// To change the default maximum range for all enum types, redefine the macro -// RFL_ENUM_RANGE_MAX. -#if !defined(RFL_ENUM_RANGE_MAX) -#define RFL_ENUM_RANGE_MAX 256 -#endif - -#ifdef ENCHANTUM_MIN_RANGE -#undef ENCHANTUM_MIN_RANGE -#endif -#define ENCHANTUM_MIN_RANGE RFL_ENUM_RANGE_MIN - -#ifdef ENCHANTUM_MAX_RANGE -#undef ENCHANTUM_MAX_RANGE -#endif -#define ENCHANTUM_MAX_RANGE RFL_ENUM_RANGE_MAX - -#include -#include - -#include "../../thirdparty/enchantum/enchantum.hpp"// NOLINT(unused-includes) - -#include "../../Literal.hpp" -#include "Names.hpp" -#include "range_defined.hpp" - -// https://en.cppreference.com/w/cpp/language/static_cast: - -// 8) A value of integer or enumeration type can be converted to any complete -// enumeration type. - -// If the underlying type is not fixed, the behavior is undefined if the value -// of expression is out of range (the range is all values possible for the -// smallest bit-field large enough to hold all enumerators of the target -// enumeration). If the underlying type is fixed, the result is the same as -// converting the original value first to the underlying type of the enumeration -// and then to the enumeration type. - -// https://en.cppreference.com/w/cpp/language/enum - -// enum struct|class name { enumerator = constexpr , enumerator = constexpr , -// ... } (1) -// ... -// 1) declares a scoped enumeration type whose underlying type is int (the -// keywords class and struct are exactly equivalent) -// -// --> These rules taken together imply that if you EITHER fix the type OR you -// use a scoped integer, static_cast(some_integer_value) will always be -// defined. - -template - requires requires(E e) { - { e | e } -> std::same_as; - } -constexpr inline bool enchantum::is_bitflag = true; - -// Specialize the enchantum EnumTraits further, so rfl::config::enum_range -// works. -namespace enchantum { - -template - requires rfl::internal::enums::range_defined -struct enum_traits { - static constexpr std::size_t prefix_length = 0; - - static constexpr auto min = rfl::config::enum_range::min; - static constexpr auto max = rfl::config::enum_range::max; -}; - -template - requires rfl::internal::enums::range_defined -struct enum_traits { - static constexpr std::size_t prefix_length = 0; - - static constexpr auto min = rfl::config::enum_range::min; - static constexpr auto max = rfl::config::enum_range::max; -}; - -template - requires SignedEnum && - (!EnumFixedUnderlying) && rfl::internal::enums::range_defined -struct enum_traits { - static constexpr auto min = rfl::config::enum_range::min; - static constexpr auto max = rfl::config::enum_range::max; -}; - -template - requires UnsignedEnum && - (!EnumFixedUnderlying) && rfl::internal::enums::range_defined -struct enum_traits { - static constexpr auto min = rfl::config::enum_range::min; - static constexpr auto max = rfl::config::enum_range::max; -}; - -} // namespace enchantum - namespace rfl::internal::enums { -template +template consteval auto get_enum_names() { - return [](std::index_sequence) { - constexpr auto& entries = enchantum::entries; - constexpr auto to_str_lit = - [](const char* name, std::index_sequence) { - return StringLiteral{name[Js]...}; - }; - return Names{})...>, - entries.size(), enchantum::is_bitflag, - entries[Is].first...>{}; - }(std::make_index_sequence>{}); +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + return cpp20::get_enum_names(); +#else + return cpp26::get_enum_names(); +#endif } + } // namespace rfl::internal::enums #endif diff --git a/include/rfl/internal/enums/get_enum_range.hpp b/include/rfl/internal/enums/get_enum_range.hpp new file mode 100644 index 000000000..714fa8fdb --- /dev/null +++ b/include/rfl/internal/enums/get_enum_range.hpp @@ -0,0 +1,23 @@ +#ifndef RFL_INTERNAL_ENUMS_GET_ENUM_RANGE_HPP_ +#define RFL_INTERNAL_ENUMS_GET_ENUM_RANGE_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION +#include "cpp20/get_enum_range.hpp" +#else +#include "cpp26/get_enum_range.hpp" +#endif + +namespace rfl::internal::enums { + +template +constexpr auto get_enum_range() { +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + return cpp20::get_enum_range(); +#else + return cpp26::get_enum_range(); +#endif +} + +} // namespace rfl::internal::enums + +#endif diff --git a/include/rfl/internal/enums/is_flag_enum.hpp b/include/rfl/internal/enums/is_flag_enum.hpp new file mode 100644 index 000000000..7d43be373 --- /dev/null +++ b/include/rfl/internal/enums/is_flag_enum.hpp @@ -0,0 +1,18 @@ +#ifndef RFL_INTERNAL_ENUMS_IS_FLAG_ENUM_HPP_ +#define RFL_INTERNAL_ENUMS_IS_FLAG_ENUM_HPP_ + +#include +#include + +namespace rfl::internal::enums { + +// Checks if an enum is a flag enum. +template +inline constexpr bool is_flag_enum = + std::is_enum_v && requires(EnumType e) { + { e | e } -> std::same_as; + }; + +} // namespace rfl::internal::enums + +#endif diff --git a/include/rfl/internal/enums/is_scoped_enum.hpp b/include/rfl/internal/enums/is_scoped_enum.hpp new file mode 100644 index 000000000..1bfb0ca7e --- /dev/null +++ b/include/rfl/internal/enums/is_scoped_enum.hpp @@ -0,0 +1,17 @@ +#ifndef RFL_INTERNAL_ENUMS_IS_SCOPED_ENUM_HPP_ +#define RFL_INTERNAL_ENUMS_IS_SCOPED_ENUM_HPP_ + +#include +#include + +namespace rfl::internal::enums { + +// Checks if an enum is a flag enum. +template +concept is_scoped_enum = + std::is_enum_v && + (!std::is_convertible_v>); + +} // namespace rfl::internal::enums + +#endif diff --git a/include/rfl/internal/enums/range_defined.hpp b/include/rfl/internal/enums/range_defined.hpp deleted file mode 100644 index 5f87f50bc..000000000 --- a/include/rfl/internal/enums/range_defined.hpp +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef RFL_INTERNAL_ENUMS_RANGE_DEFINED_HPP_ -#define RFL_INTERNAL_ENUMS_RANGE_DEFINED_HPP_ - -#include "../../config.hpp" - -namespace rfl::internal::enums { - -template -concept range_defined = requires { - { config::enum_range::min }; - - { config::enum_range::max }; -}; - -} // namespace rfl::internal::enums - -#endif diff --git a/include/rfl/internal/enums/to_string.hpp b/include/rfl/internal/enums/to_string.hpp new file mode 100644 index 000000000..7e6d41b8b --- /dev/null +++ b/include/rfl/internal/enums/to_string.hpp @@ -0,0 +1,23 @@ +#ifndef RFL_INTERNAL_ENUMS_TO_STRING_OR_NUMBER_HPP_ +#define RFL_INTERNAL_ENUMS_TO_STRING_OR_NUMBER_HPP_ + +#ifndef REFLECTCPP_USE_CPP26_REFLECTION +#include "cpp20/to_string.hpp" +#else +#include "cpp26/to_string.hpp" +#endif + +namespace rfl::internal::enums { + +template +auto to_string(const EnumType e) { +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + return cpp20::to_string(e); +#else + return cpp26::to_string(e); +#endif +} + +} // namespace rfl::internal::enums + +#endif diff --git a/include/rfl/internal/field_index_by_name.hpp b/include/rfl/internal/field_index_by_name.hpp deleted file mode 100644 index 52609b517..000000000 --- a/include/rfl/internal/field_index_by_name.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef RFL_INTERNAL_FIELD_INDEX_BY_NAME_HPP_ -#define RFL_INTERNAL_FIELD_INDEX_BY_NAME_HPP_ - -#include -#include -#include - -#include "StringLiteral.hpp" -#include "field_index_from_ptm.hpp" -#include "get_field_names.hpp" -#include "get_ith_field_from_fake_object.hpp" -#include "num_fields.hpp" - -namespace rfl::internal { - -/// Returns the name of the i-th field of T as a string_view, using the same -/// fake-object name-lookup path that to_named_tuple uses. -template -consteval std::string_view field_name_at() { - return get_field_name_str_view()>(); -} - -template -consteval std::size_t field_index_by_name_impl(std::index_sequence) { - std::size_t result = static_cast(-1); - ((field_name_at() == Name.string_view() - ? (result = Is, true) - : false) || - ...); - return result; -} - -/// Finds the index of the field with the given Name in T. Returns size_t(-1) -/// if no field with that name exists; callers must produce a static_assert. -template -inline constexpr std::size_t field_index_by_name_v = - field_index_by_name_impl( - std::make_index_sequence>{}); - -/// Helper: extracts the cv-stripped value type of the i-th field of T, -/// suitable as a function parameter or local variable type. Use this when -/// you need to declare an object of the field's type; do not use it to -/// inspect const-ness of the original field declaration (cv is removed). -template -struct field_value_type_at { - using type = std::remove_cv_t(I)>())>>; -}; - -/// Sentinel value type used when field_index_by_name_v fails to find a -/// matching field. The caller's static_assert then fires before any -/// real call site can use this type. -struct unresolved_field_type {}; - -/// When the index is the sentinel size_t(-1), return a placeholder type so -/// that a failing field_index_by_name_v lookup does not trip an out-of-range -/// instantiation before the caller's static_assert can fire. -template -struct field_value_type_at(-1)> { - using type = unresolved_field_type; -}; - -template -using field_value_type_at_t = typename field_value_type_at::type; - -} // namespace rfl::internal - -#endif diff --git a/include/rfl/internal/field_index_from_ptm.hpp b/include/rfl/internal/field_index_from_ptm.hpp deleted file mode 100644 index 22a7366ae..000000000 --- a/include/rfl/internal/field_index_from_ptm.hpp +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef RFL_INTERNAL_FIELD_INDEX_FROM_PTM_HPP_ -#define RFL_INTERNAL_FIELD_INDEX_FROM_PTM_HPP_ - -#include -#include - -#ifdef _MSC_VER -#include -#endif - -#include "get_fake_object.hpp" -#include "get_field_names.hpp" -#include "get_ith_field_from_fake_object.hpp" -#include "num_fields.hpp" - -namespace rfl::internal { - -/// Finds the index of the data member designated by `FieldPtr` in T by -/// comparing the address of (obj.*FieldPtr) against the addresses of T's -/// structured-binding fields. All comparisons are between subobject pointers -/// of the same object, which is well-defined in a constant expression. -/// -/// On GCC/Clang we use the extern-const fake object — fields can be of any -/// type (including non-literal `std::string` on older standard libraries), -/// since the object is never actually instantiated, only address-folded -/// inside the `consteval` evaluation. -/// -/// MSVC refuses to constant-fold &(fake_object.*FieldPtr) on an extern-const -/// symbol, so on MSVC we construct a local default-initialised T instead. -/// This requires T (and the field type) to be a constexpr literal type, but -/// settings structs in practice satisfy this when targeting MSVC builds. -/// -/// Returns size_t(-1) if no match is found, in which case callers must -/// produce a static_assert. -template -consteval std::size_t field_index_from_ptm_impl(std::index_sequence) { -#ifdef _MSC_VER - static_assert(std::is_default_constructible_v, - "On MSVC, Settings structs used with " - "rfl::Settings::with<&T::field>() must be " - "default-constructible (constexpr literal type)."); - T obj{}; - const void* target = static_cast(&(obj.*FieldPtr)); - std::size_t result = static_cast(-1); - ((static_cast(get_ith_field_ptr(Is)>(obj)) == - target - ? (result = Is, true) - : false) || - ...); - return result; -#else - const void* target = - static_cast(&(get_fake_object().*FieldPtr)); - std::size_t result = static_cast(-1); - ((static_cast(get_ith_field_from_fake_object()) == target - ? (result = Is, true) - : false) || - ...); - return result; -#endif -} - -template -inline constexpr std::size_t field_index_v = - field_index_from_ptm_impl( - std::make_index_sequence>{}); - -/// Returns the i-th field pointer of the fake object of T in the form -/// `get_field_name_str_lit` expects on the current compiler. On clang the -/// pointer is wrapped in `Wrapper` because clang's parser of __PRETTY_FUNCTION__ -/// extracts the field name from the wrapper's type, not from the value. -template -consteval auto fake_field_ptr_for_name_lookup() { -#if defined(__clang__) - return wrap(get_ith_field_from_fake_object(I)>()); -#else - return get_ith_field_from_fake_object(I)>(); -#endif -} - -} // namespace rfl::internal - -#endif diff --git a/include/rfl/internal/field_tuple_t.hpp b/include/rfl/internal/field_tuple_t.hpp index 186b12f04..bf0e473d4 100644 --- a/include/rfl/internal/field_tuple_t.hpp +++ b/include/rfl/internal/field_tuple_t.hpp @@ -5,14 +5,12 @@ #include "copy_to_field_tuple.hpp" -namespace rfl { -namespace internal { +namespace rfl::internal { template using field_tuple_t = typename std::invoke_result), T>::type; -} -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/internal/get_field_names.hpp b/include/rfl/internal/get_field_names.hpp index 683d5c756..d581830cc 100644 --- a/include/rfl/internal/get_field_names.hpp +++ b/include/rfl/internal/get_field_names.hpp @@ -1,170 +1,23 @@ #ifndef RFL_INTERNAL_GETFIELDNAMES_HPP_ #define RFL_INTERNAL_GETFIELDNAMES_HPP_ -#include -#include - -#if __has_include() -#include -#endif - -#include "../Literal.hpp" -#include "get_ith_field_from_fake_object.hpp" -#include "is_flatten_field.hpp" -#include "is_rename.hpp" -#include "num_fields.hpp" - -#if __GNUC__ -#ifndef __clang__ -#pragma GCC system_header -#endif -#endif - -namespace rfl::internal { - -template -struct Wrapper { - using Type = T; - T v; -}; - -template -Wrapper(T) -> Wrapper; - -// This workaround is necessary for clang. -template -constexpr auto wrap(const T& arg) noexcept { - return Wrapper{arg}; -} - -template -consteval auto get_field_name_str_view() { -#if __cpp_lib_source_location >= 201907L - const auto func_name = - std::string_view{std::source_location::current().function_name()}; -#elif defined(_MSC_VER) - // Officially, we only support MSVC versions that are modern enough to contain - // , but inofficially, this might work. - const auto func_name = std::string_view{__FUNCSIG__}; +#ifndef REFLECTCPP_USE_CPP26_REFLECTION +#include "cpp20/get_field_names.hpp" #else - const auto func_name = std::string_view{__PRETTY_FUNCTION__}; +#include "cpp26/get_field_names.hpp" #endif -#if defined(__clang__) - const auto split = func_name.substr(0, func_name.size() - 2); - return split.substr(split.find_last_of(":.") + 1); -#elif defined(__GNUC__) - const auto split = func_name.substr(0, func_name.size() - 2); - return split.substr(split.find_last_of(":") + 1); -#elif defined(_MSC_VER) - const auto split = func_name.substr(0, func_name.size() - 7); - return split.substr(split.rfind("->") + 2); -#else - static_assert(false, - "You are using an unsupported compiler. Please use GCC, Clang " - "or MSVC or switch to the rfl::Field-syntax."); -#endif -} -template -consteval auto get_field_name_str_lit() { - constexpr auto name = get_field_name_str_view(); - const auto to_str_lit = [&](std::index_sequence) { - return StringLiteral{name[Ns]...}; - }; - return to_str_lit(std::make_index_sequence{}); -} - -template -auto get_field_names(); - -template -auto get_field_name() { -#if defined(__clang__) - using Type = std::remove_cvref_t::Type>>; -#else - using Type = std::remove_cvref_t>; -#endif - if constexpr (is_rename_v) { - using Name = typename Type::Name; - return Name(); - } else if constexpr (is_flatten_field_v) { - return get_field_names>(); - } else { - return rfl::Literal()>(); - } -} - -// We don't want the operator+ to apply to normal literals, -// so we introduce this wrapper. -template -struct LiteralWrapper { - Literal<_names...> literal_; -}; - -template -auto wrap_literal(const Literal<_names...>& _literal) { - return LiteralWrapper<_names...>{_literal}; -} - -template -auto operator+(const LiteralWrapper<_names1...>&, - const LiteralWrapper<_names2...>&) { - return LiteralWrapper<_names1..., _names2...>{ - rfl::Literal<_names1..., _names2...>::template from_value<0>()}; -} - -template -auto concat_literals(const Head& _head, const Tail&... _tail) { - return (wrap_literal(_head) + ... + wrap_literal(_tail)).literal_; -} - -// Special case - the struct does not contain rfl::Flatten. -template -auto concat_literals(const rfl::Literal<_head>&, - const rfl::Literal<_tail>&...) { - return rfl::Literal<_head, _tail...>::template from_value<0>(); -} - -inline auto concat_literals() { return rfl::Literal<>(); } - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wundefined-var-template" -#pragma clang diagnostic ignored "-Wundefined-inline" -#endif +namespace rfl::internal { template -#if __GNUC__ -#ifndef __clang__ -[[gnu::no_sanitize_undefined]] -#endif -#endif auto get_field_names() { - using Type = std::remove_cvref_t; - if constexpr (std::is_pointer_v) { - return get_field_names>(); - } else { -#if defined(__clang__) - const auto get = [](std::index_sequence<_is...>) { - return concat_literals( - get_field_name())>()...); - }; +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + return cpp20::get_field_names(); #else - const auto get = [](std::index_sequence<_is...>) { - return concat_literals( - get_field_name()>()...); - }; + return cpp26::get_field_names(); #endif - return get(std::make_index_sequence>()); - } } -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - } // namespace rfl::internal #endif diff --git a/include/rfl/internal/get_member_ptr_name.hpp b/include/rfl/internal/get_member_ptr_name.hpp new file mode 100644 index 000000000..32b0eba6f --- /dev/null +++ b/include/rfl/internal/get_member_ptr_name.hpp @@ -0,0 +1,17 @@ +#ifndef RFL_INTERNAL_GET_MEMBER_PTR_NAME_HPP_ +#define RFL_INTERNAL_GET_MEMBER_PTR_NAME_HPP_ + +#include "cpp20/get_member_ptr_name.hpp" + +namespace rfl::internal { + +template +consteval auto get_member_ptr_name() { + // Unfortunately, we cannot use the C++26 reflection API here, as retrieving + // the name of a member pointer is apparently not supported by the API. + return cpp20::get_member_ptr_name(); +} + +} // namespace rfl::internal + +#endif diff --git a/include/rfl/internal/get_type_name.hpp b/include/rfl/internal/get_type_name.hpp index 38ab1c4c4..b276e3629 100644 --- a/include/rfl/internal/get_type_name.hpp +++ b/include/rfl/internal/get_type_name.hpp @@ -1,63 +1,23 @@ #ifndef RFL_INTERNAL_GETTYPENAME_HPP_ #define RFL_INTERNAL_GETTYPENAME_HPP_ -#include - -#include "StringLiteral.hpp" - -#if __has_include() -#include +#ifndef REFLECTCPP_USE_CPP26_REFLECTION +#include "cpp20/get_type_name.hpp" +#else +#include "cpp26/get_type_name.hpp" #endif -namespace rfl { -namespace internal { +namespace rfl::internal { template -consteval auto get_type_name_str_view() { -#if __cpp_lib_source_location >= 201907L - const auto func_name = - std::string_view{std::source_location::current().function_name()}; -#elif defined(_MSC_VER) - // Officially, we only support MSVC versions that are modern enough to contain - // , but inofficially, this might work. - const auto func_name = std::string_view{__FUNCSIG__}; -#else - const auto func_name = std::string_view{__PRETTY_FUNCTION__}; -#endif -#if defined(__clang__) - const auto split = func_name.substr(0, func_name.size() - 1); - return split.substr(split.find("T = ") + 4); -#elif defined(__GNUC__) - const auto split = func_name.substr(0, func_name.size() - 1); - return split.substr(split.find("T = ") + 4); -#elif defined(_MSC_VER) - auto split = func_name.substr(0, func_name.size() - 7); - split = split.substr(split.find("get_type_name_str_view<") + 23); - auto pos = split.find(" "); - if (pos != std::string_view::npos) { - return split.substr(pos + 1); - } - return split; +consteval auto get_type_name() { +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + return cpp20::get_type_name(); #else - static_assert( - false, - "You are using an unsupported compiler. Please use GCC, Clang " - "or MSVC or explicitly tag your structs using 'Tag' or 'Name'."); + return cpp26::get_type_name(); #endif } -template -consteval auto get_type_name() { - static_assert(get_type_name_str_view() == "int", - "Expected 'int', got something else."); - constexpr auto name = get_type_name_str_view(); - const auto to_str_lit = [&](std::index_sequence) { - return StringLiteral{name[Ns]...}; - }; - return to_str_lit(std::make_index_sequence{}); -} - -} // namespace internal -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/internal/move_to_field_tuple.hpp b/include/rfl/internal/move_to_field_tuple.hpp index be647e6b8..aad04ce80 100644 --- a/include/rfl/internal/move_to_field_tuple.hpp +++ b/include/rfl/internal/move_to_field_tuple.hpp @@ -12,8 +12,7 @@ #include "is_named_tuple.hpp" #include "wrap_in_fields.hpp" -namespace rfl { -namespace internal { +namespace rfl::internal { template auto move_to_field_tuple(OriginalStruct&& _t) { @@ -39,7 +38,6 @@ auto move_to_field_tuple(OriginalStruct&& _t) { } } -} // namespace internal -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/internal/ptr_field_tuple_t.hpp b/include/rfl/internal/ptr_field_tuple_t.hpp index 9b20a9b9a..dd6a55f58 100644 --- a/include/rfl/internal/ptr_field_tuple_t.hpp +++ b/include/rfl/internal/ptr_field_tuple_t.hpp @@ -3,13 +3,11 @@ #include "to_ptr_field_tuple.hpp" -namespace rfl { -namespace internal { +namespace rfl::internal { template using ptr_field_tuple_t = decltype(to_ptr_field_tuple(std::declval())); -} // namespace internal -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/internal/ptr_named_tuple_t.hpp b/include/rfl/internal/ptr_named_tuple_t.hpp index f8c88ef07..e1b958084 100644 --- a/include/rfl/internal/ptr_named_tuple_t.hpp +++ b/include/rfl/internal/ptr_named_tuple_t.hpp @@ -3,17 +3,14 @@ #include -//#include "is_named_tuple.hpp"//Not here #include "to_ptr_named_tuple.hpp" -namespace rfl { -namespace internal { +namespace rfl::internal { template using ptr_named_tuple_t = std::invoke_result_t), T>; -} // namespace internal -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/internal/ptr_tuple_t.hpp b/include/rfl/internal/ptr_tuple_t.hpp index 1a11965ec..599c03801 100644 --- a/include/rfl/internal/ptr_tuple_t.hpp +++ b/include/rfl/internal/ptr_tuple_t.hpp @@ -3,13 +3,11 @@ #include "to_ptr_tuple.hpp" -namespace rfl { -namespace internal { +namespace rfl::internal { template using ptr_tuple_t = decltype(to_ptr_tuple(std::declval())); -} // namespace internal -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/internal/to_flattened_ptr_tuple.hpp b/include/rfl/internal/to_flattened_ptr_tuple.hpp index 2287d94a0..b57df7321 100644 --- a/include/rfl/internal/to_flattened_ptr_tuple.hpp +++ b/include/rfl/internal/to_flattened_ptr_tuple.hpp @@ -7,8 +7,7 @@ #include "is_flatten_field.hpp" #include "to_ptr_tuple.hpp" -namespace rfl { -namespace internal { +namespace rfl::internal { template auto flatten_ptr_tuple(PtrTuple&& _t) { @@ -28,8 +27,7 @@ auto flatten_ptr_tuple(PtrTuple&& _t) { return [&](std::integer_sequence) { return rfl::tuple_cat(get_one(std::integral_constant{})...); - } - (std::make_integer_sequence()); + }(std::make_integer_sequence()); } } @@ -38,7 +36,6 @@ auto to_flattened_ptr_tuple(T&& _t) { return flatten_ptr_tuple(to_ptr_tuple(_t)); } -} // namespace internal -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/internal/to_ptr_field.hpp b/include/rfl/internal/to_ptr_field.hpp index 0db97cc3a..27a52f650 100644 --- a/include/rfl/internal/to_ptr_field.hpp +++ b/include/rfl/internal/to_ptr_field.hpp @@ -8,8 +8,7 @@ #include "../always_false.hpp" #include "StringLiteral.hpp" -namespace rfl { -namespace internal { +namespace rfl::internal { template inline auto to_ptr_field(Field<_name, Type>& _field) { @@ -35,7 +34,6 @@ inline auto to_ptr_field(const Flatten& _field) { return Flatten(&_field.value_); } -} // namespace internal -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/internal/to_ptr_named_tuple.hpp b/include/rfl/internal/to_ptr_named_tuple.hpp index b2d9f575b..f284620bb 100644 --- a/include/rfl/internal/to_ptr_named_tuple.hpp +++ b/include/rfl/internal/to_ptr_named_tuple.hpp @@ -23,7 +23,7 @@ auto flatten_ptr_field_tuple(PtrFieldTuple& _t) { const auto get_one = [&](std::integral_constant) { using T = tuple_element_t<_i, std::remove_cvref_t>; if constexpr (internal::is_flatten_field::value) { - auto subtuple = internal::to_ptr_field_tuple(*rfl::get<_i>(_t).get()); + auto subtuple = to_ptr_field_tuple(*rfl::get<_i>(_t).get()); return flatten_ptr_field_tuple(subtuple); } else { return rfl::make_tuple(rfl::get<_i>(_t)); diff --git a/include/rfl/internal/to_ptr_tuple.hpp b/include/rfl/internal/to_ptr_tuple.hpp index 076a5e534..7cc73faff 100644 --- a/include/rfl/internal/to_ptr_tuple.hpp +++ b/include/rfl/internal/to_ptr_tuple.hpp @@ -5,8 +5,7 @@ #include "bind_to_tuple.hpp" -namespace rfl { -namespace internal { +namespace rfl::internal { template auto to_ptr_tuple(T& _t) { @@ -17,7 +16,6 @@ auto to_ptr_tuple(T& _t) { } } -} // namespace internal -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/internal/wrap_in_fields.hpp b/include/rfl/internal/wrap_in_fields.hpp index f536779d1..1321d208f 100644 --- a/include/rfl/internal/wrap_in_fields.hpp +++ b/include/rfl/internal/wrap_in_fields.hpp @@ -3,14 +3,13 @@ #include -#include "../Field.hpp" #include "../Tuple.hpp" +#include "../make_field.hpp" #include "flattened_ptr_tuple_t.hpp" #include "is_flatten_field.hpp" #include "lit_name.hpp" -namespace rfl { -namespace internal { +namespace rfl::internal { // TODO: Non-recursive implementation template @@ -41,7 +40,6 @@ auto wrap_in_fields(auto&& _tuple, Fields&&... _fields) { } } -} // namespace internal -} // namespace rfl +} // namespace rfl::internal #endif diff --git a/include/rfl/make_field.hpp b/include/rfl/make_field.hpp new file mode 100644 index 000000000..ad0692dd4 --- /dev/null +++ b/include/rfl/make_field.hpp @@ -0,0 +1,33 @@ +#ifndef RFL_MAKE_FIELD_HPP_ +#define RFL_MAKE_FIELD_HPP_ + +#include +#include + +#include "Field.hpp" +#include "internal/Array.hpp" +#include "internal/StringLiteral.hpp" +#include "internal/get_member_ptr_name.hpp" + +namespace rfl { + +template +inline auto make_field(T&& _value) { + using T0 = std::remove_cvref_t; + if constexpr (std::is_array_v) { + return Field<_name, T0>(internal::Array(std::forward(_value))); + } else { + return Field<_name, T0>(std::forward(_value)); + } +} + +template + requires(std::is_member_pointer_v) +inline auto make_field(T&& _value) { + return make_field()>( + std::forward(_value)); +} + +} // namespace rfl + +#endif // RFL_FIELD_HPP_ diff --git a/include/rfl/num_fields.hpp b/include/rfl/num_fields.hpp index c4f167761..7e6246b5a 100644 --- a/include/rfl/num_fields.hpp +++ b/include/rfl/num_fields.hpp @@ -1,15 +1,23 @@ #ifndef RFL_NUM_FIELDS_HPP_ #define RFL_NUM_FIELDS_HPP_ -#include "internal/num_fields.hpp" +#ifndef REFLECTCPP_USE_CPP26_REFLECTION +#include "internal/cpp20/num_fields.hpp" +#else +#include "internal/cpp26/num_fields.hpp" +#endif namespace rfl { /// Returns the number of fields in struct T at compile time. -/// This uses structured bindings to count the fields. /// @tparam T The struct type to count fields for +#ifndef REFLECTCPP_USE_CPP26_REFLECTION +template +constexpr std::size_t num_fields = internal::cpp20::num_fields; +#else template -constexpr std::size_t num_fields = internal::num_fields; +constexpr std::size_t num_fields = internal::cpp26::num_fields; +#endif } // namespace rfl diff --git a/include/rfl/parquet/Settings.hpp b/include/rfl/parquet/Settings.hpp index 026b7f7df..93d5279ca 100644 --- a/include/rfl/parquet/Settings.hpp +++ b/include/rfl/parquet/Settings.hpp @@ -1,8 +1,21 @@ #ifndef RFL_PARQUET_SETTINGS_HPP_ #define RFL_PARQUET_SETTINGS_HPP_ +// Silence a -Warray-bounds false positive in Apache Arrow +// (buffer_builder.h) with GCC 16. +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif +#endif #include #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include "../Settings.hpp" #include "../internal/deprecated_with.hpp" diff --git a/include/rfl/parquet/read.hpp b/include/rfl/parquet/read.hpp index 0d4ede49e..35dee7ec6 100644 --- a/include/rfl/parquet/read.hpp +++ b/include/rfl/parquet/read.hpp @@ -1,8 +1,21 @@ #ifndef RFL_PARQUET_READ_HPP_ #define RFL_PARQUET_READ_HPP_ +// Silence a -Warray-bounds false positive in Apache Arrow +// (buffer_builder.h) with GCC 16. +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif +#endif #include #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include diff --git a/include/rfl/parquet/write.hpp b/include/rfl/parquet/write.hpp index 8c0b9f03d..8fa01db1e 100644 --- a/include/rfl/parquet/write.hpp +++ b/include/rfl/parquet/write.hpp @@ -1,8 +1,21 @@ #ifndef RFL_PARQUET_WRITE_HPP_ #define RFL_PARQUET_WRITE_HPP_ +// Silence a -Warray-bounds false positive in Apache Arrow +// (buffer_builder.h) with GCC 16. +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif +#endif #include #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include diff --git a/include/rfl/parsing/ParserBasicType.hpp b/include/rfl/parsing/ParserBasicType.hpp index 368bc9f73..a1413cb83 100644 --- a/include/rfl/parsing/ParserBasicType.hpp +++ b/include/rfl/parsing/ParserBasicType.hpp @@ -19,7 +19,6 @@ #include "../internal/processed_t.hpp" #include "../internal/ptr_cast.hpp" #include "../internal/to_ptr_named_tuple.hpp" -#include "../thirdparty/enchantum/enchantum.hpp" #include "../to_view.hpp" #include "AreReaderAndWriter.hpp" #include "Parent.hpp" diff --git a/include/rfl/parsing/ParserEnum.hpp b/include/rfl/parsing/ParserEnum.hpp index b9742af4b..174d2cdcd 100644 --- a/include/rfl/parsing/ParserEnum.hpp +++ b/include/rfl/parsing/ParserEnum.hpp @@ -7,9 +7,10 @@ #include "../Result.hpp" #include "../config.hpp" #include "../enums.hpp" +#include "../internal/enums/is_flag_enum.hpp" +#include "../internal/enums/is_scoped_enum.hpp" #include "../internal/has_reflector.hpp" #include "../internal/underlying_enums_v.hpp" -#include "../thirdparty/enchantum/enchantum.hpp" #include "AreReaderAndWriter.hpp" #include "Parent.hpp" #include "Parser_base.hpp" @@ -52,7 +53,7 @@ struct ParserEnum { } else if constexpr (internal::underlying_enums_v || schemaful::IsSchemafulReader) { - static_assert(enchantum::ScopedEnum, + static_assert(internal::enums::is_scoped_enum, "The enum must be a scoped enum in order to retrieve " "the underlying value."); return _r.template to_basic_type>(_var) @@ -111,7 +112,7 @@ struct ParserEnum { if constexpr (internal::underlying_enums_v || schemaful::IsSchemafulReader) { return Type{Type::Integer{}}; - } else if constexpr (enchantum::is_bitflag) { + } else if constexpr (internal::enums::is_flag_enum) { return Type{Type::String{}}; } else if constexpr (config::enum_descriptions::has_descriptions) { // Generate DescribedLiteral for enums with descriptions diff --git a/include/rfl/parsing/tabular/ArrowReader.hpp b/include/rfl/parsing/tabular/ArrowReader.hpp index 166b3135c..aea813965 100644 --- a/include/rfl/parsing/tabular/ArrowReader.hpp +++ b/include/rfl/parsing/tabular/ArrowReader.hpp @@ -1,7 +1,20 @@ #ifndef RFL_PARSING_TABULAR_ARROWREADER_HPP_ #define RFL_PARSING_TABULAR_ARROWREADER_HPP_ +// Silence a -Warray-bounds false positive in Apache Arrow +// (buffer_builder.h) with GCC 16. +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif +#endif #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include diff --git a/include/rfl/parsing/tabular/ArrowTypes.hpp b/include/rfl/parsing/tabular/ArrowTypes.hpp index c0ed325f3..12f556581 100644 --- a/include/rfl/parsing/tabular/ArrowTypes.hpp +++ b/include/rfl/parsing/tabular/ArrowTypes.hpp @@ -1,12 +1,26 @@ #ifndef RFL_PARSING_TABULAR_ARROWTYPES_HPP_ #define RFL_PARSING_TABULAR_ARROWTYPES_HPP_ +// Silence a -Warray-bounds false positive in Apache Arrow +// (buffer_builder.h) with GCC 16. +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif +#endif #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include #include #include +#include #include "../../Box.hpp" #include "../../NamedTuple.hpp" @@ -672,7 +686,7 @@ struct ArrowTypes { }; template - requires enchantum::Enum + requires std::is_enum_v struct ArrowTypes { using ArrayType = arrow::StringArray; using BuilderType = arrow::StringBuilder; diff --git a/include/rfl/parsing/tabular/ArrowWriter.hpp b/include/rfl/parsing/tabular/ArrowWriter.hpp index 2b240676c..fb61a1c87 100644 --- a/include/rfl/parsing/tabular/ArrowWriter.hpp +++ b/include/rfl/parsing/tabular/ArrowWriter.hpp @@ -1,7 +1,20 @@ #ifndef RFL_PARSING_TABULAR_ARROWWRITER_HPP_ #define RFL_PARSING_TABULAR_ARROWWRITER_HPP_ +// Silence a -Warray-bounds false positive in Apache Arrow +// (buffer_builder.h) with GCC 16. +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif +#endif #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include diff --git a/include/rfl/parsing/tabular/ChunkedArrayIterator.hpp b/include/rfl/parsing/tabular/ChunkedArrayIterator.hpp index 5e1ebbeee..3486d9061 100644 --- a/include/rfl/parsing/tabular/ChunkedArrayIterator.hpp +++ b/include/rfl/parsing/tabular/ChunkedArrayIterator.hpp @@ -1,7 +1,20 @@ #ifndef RFL_PARSING_TABULAR_CHUNKEDARRAYITERATOR_HPP_ #define RFL_PARSING_TABULAR_CHUNKEDARRAYITERATOR_HPP_ +// Silence a -Warray-bounds false positive in Apache Arrow +// (buffer_builder.h) with GCC 16. +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif +#endif #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include "../../Ref.hpp" #include "../../Result.hpp" diff --git a/include/rfl/parsing/tabular/make_arrow_builders.hpp b/include/rfl/parsing/tabular/make_arrow_builders.hpp index 85b0de114..a115a667f 100644 --- a/include/rfl/parsing/tabular/make_arrow_builders.hpp +++ b/include/rfl/parsing/tabular/make_arrow_builders.hpp @@ -1,7 +1,20 @@ #ifndef RFL_PARSING_TABULAR_MAKEARROWBUILDERS_HPP_ #define RFL_PARSING_TABULAR_MAKEARROWBUILDERS_HPP_ +// Silence a -Warray-bounds false positive in Apache Arrow +// (buffer_builder.h) with GCC 16. +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif +#endif #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include diff --git a/include/rfl/parsing/tabular/make_chunked_array_iterators.hpp b/include/rfl/parsing/tabular/make_chunked_array_iterators.hpp index 2cf66a56c..7c56ac4aa 100644 --- a/include/rfl/parsing/tabular/make_chunked_array_iterators.hpp +++ b/include/rfl/parsing/tabular/make_chunked_array_iterators.hpp @@ -1,7 +1,20 @@ #ifndef RFL_PARSING_TABULAR_MAKECHUNKEDARRAYITERATORS_HPP_ #define RFL_PARSING_TABULAR_MAKECHUNKEDARRAYITERATORS_HPP_ +// Silence a -Warray-bounds false positive in Apache Arrow +// (buffer_builder.h) with GCC 16. +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif +#endif #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include diff --git a/include/rfl/ubjson/Reader.hpp b/include/rfl/ubjson/Reader.hpp index cb359f213..308011f9b 100644 --- a/include/rfl/ubjson/Reader.hpp +++ b/include/rfl/ubjson/Reader.hpp @@ -3,7 +3,20 @@ #include #include +// Silence a -Wmaybe-uninitialized false positive in jsoncons +// (utility/bigint.hpp). +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#endif #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include #include diff --git a/include/rfl/ubjson/Writer.hpp b/include/rfl/ubjson/Writer.hpp index 5f0714b84..aef5b31f4 100644 --- a/include/rfl/ubjson/Writer.hpp +++ b/include/rfl/ubjson/Writer.hpp @@ -2,7 +2,20 @@ #define RFL_UBJSON_WRITER_HPP_ #include +// Silence a -Wmaybe-uninitialized false positive in jsoncons +// (utility/bigint.hpp). +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#endif #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include #include diff --git a/include/rfl/ubjson/read.hpp b/include/rfl/ubjson/read.hpp index cfdc9d0ff..6ae67186f 100644 --- a/include/rfl/ubjson/read.hpp +++ b/include/rfl/ubjson/read.hpp @@ -3,8 +3,21 @@ #include #include +// Silence a -Wmaybe-uninitialized false positive in jsoncons +// (utility/bigint.hpp). +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#endif #include #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include "../Processors.hpp" @@ -18,13 +31,16 @@ namespace rfl::ubjson { using InputObjectType = typename Reader::InputObjectType; using InputVarType = typename Reader::InputVarType; -/// Parses an object from UBJSON bytes using reflection (contiguous container version). -/// UBJSON (Universal Binary JSON) is a compact binary format that mirrors JSON's data model. -/// It's designed to be faster to parse than JSON while maintaining compatibility with JSON semantics. +/// Parses an object from UBJSON bytes using reflection (contiguous container +/// version). UBJSON (Universal Binary JSON) is a compact binary format that +/// mirrors JSON's data model. It's designed to be faster to parse than JSON +/// while maintaining compatibility with JSON semantics. /// @tparam T The type to parse into /// @tparam Ps Processors to apply during parsing (transforms the data) -/// @param _bytes A contiguous byte container (e.g., std::vector, std::string) containing UBJSON data -/// @return Result containing either the parsed object (or array of objects) or an error message +/// @param _bytes A contiguous byte container (e.g., std::vector, +/// std::string) containing UBJSON data +/// @return Result containing either the parsed object (or array of objects) or +/// an error message template Result> read( const concepts::ContiguousByteContainer auto& _bytes) { @@ -42,7 +58,8 @@ Result> read( /// @tparam T The type to parse into /// @tparam Ps Processors to apply during parsing (transforms the data) /// @param _stream The input stream containing UBJSON binary data -/// @return Result containing either the parsed object (or array of objects) or an error message +/// @return Result containing either the parsed object (or array of objects) or +/// an error message template Result> read(std::istream& _stream) { auto result = jsoncons::ubjson::try_decode_ubjson(_stream); diff --git a/include/rfl/ubjson/write.hpp b/include/rfl/ubjson/write.hpp index 523405dbb..964578163 100644 --- a/include/rfl/ubjson/write.hpp +++ b/include/rfl/ubjson/write.hpp @@ -2,7 +2,20 @@ #define RFL_UBJSON_WRITE_HPP_ #include +// Silence a -Wmaybe-uninitialized false positive in jsoncons +// (utility/bigint.hpp). +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#endif #include +#ifdef __GNUC__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif #include #include #include @@ -15,8 +28,9 @@ namespace rfl::ubjson { /// Returns UBJSON bytes representation of the object. -/// UBJSON (Universal Binary JSON) is a compact binary format that mirrors JSON's data model. -/// Uses compile-time reflection to serialize a C++ object to UBJSON format. +/// UBJSON (Universal Binary JSON) is a compact binary format that mirrors +/// JSON's data model. Uses compile-time reflection to serialize a C++ object to +/// UBJSON format. /// @tparam Ps Processors to apply during serialization (transforms the data) /// @param _obj The object to serialize to UBJSON /// @return A vector of chars containing the UBJSON binary representation @@ -35,7 +49,8 @@ std::vector write(const auto& _obj) { } /// Writes a UBJSON representation into an ostream. -/// Uses compile-time reflection to serialize a C++ object to UBJSON and write to a stream. +/// Uses compile-time reflection to serialize a C++ object to UBJSON and write +/// to a stream. /// @tparam Ps Processors to apply during serialization (transforms the data) /// @param _obj The object to serialize to UBJSON /// @param _stream The output stream to write UBJSON binary data to diff --git a/mkdocs.yaml b/mkdocs.yaml index 9c2e9fcd7..04e4de8ce 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -112,6 +112,7 @@ nav: - Custom Format: supported_formats/supporting_your_own_format.md # - Reflective Programming: ./reflective_programming.md - Installation: install.md + - C++26 reflection: cpp26_reflection.md - Documentation: - docs-readme.md - The basics: diff --git a/tests/generic/test_enum_range_min_max.cpp b/tests/generic/test_enum_range_min_max.cpp index 732a71716..edd232e04 100644 --- a/tests/generic/test_enum_range_min_max.cpp +++ b/tests/generic/test_enum_range_min_max.cpp @@ -1,3 +1,5 @@ +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + #include // Redefine the range of the enums #define RFL_ENUM_RANGE_MIN -128 @@ -21,9 +23,9 @@ struct rfl::config::enum_range { namespace test_enum_range_min_max { TEST(generic, test_enum_range_min_max) { - static_assert(!rfl::internal::enums::range_defined, + static_assert(!rfl::internal::enums::cpp20::range_defined, "Range should not be defined."); - static_assert(rfl::internal::enums::range_defined, + static_assert(rfl::internal::enums::cpp20::range_defined, "Range should be defined."); auto [inner_min, inner_max] = rfl::get_enum_range(); @@ -36,3 +38,5 @@ TEST(generic, test_enum_range_min_max) { } } // namespace test_enum_range_min_max + +#endif diff --git a/tests/generic/test_enum_range_size.cpp b/tests/generic/test_enum_range_size.cpp index 46652097f..741c23fcc 100644 --- a/tests/generic/test_enum_range_size.cpp +++ b/tests/generic/test_enum_range_size.cpp @@ -1,3 +1,5 @@ +#ifndef REFLECTCPP_USE_CPP26_REFLECTION + #include // Redefine the range of the enums #define RFL_ENUM_RANGE_MIN -128 @@ -35,3 +37,5 @@ TEST(generic, test_enum_range_size) { } } // namespace test_enum_range_size + +#endif diff --git a/tests/generic/test_optional.cpp b/tests/generic/test_optional.cpp index 838adbd9d..4ccc16466 100644 --- a/tests/generic/test_optional.cpp +++ b/tests/generic/test_optional.cpp @@ -1,17 +1,19 @@ +#include + #include #include -#include namespace test_optional { struct Person { - std::string name; - std::optional> spouse; + std::string name; + std::optional> spouse; }; TEST(generic, test_optional) { - rfl::Generic generic; - // This failed to compile due to optional copying rather than moving - rfl::from_generic(generic); + rfl::Generic generic; + // This failed to compile due to optional copying rather than moving + const auto res = rfl::from_generic(generic); + EXPECT_FALSE(res && true); } -} // namespace test_map +} // namespace test_optional diff --git a/tests/generic/test_result.cpp b/tests/generic/test_result.cpp index f05a9d3e4..bc68a9452 100644 --- a/tests/generic/test_result.cpp +++ b/tests/generic/test_result.cpp @@ -1,23 +1,21 @@ #include +#include #include #include -#include - namespace test_result_cross_assign { TEST(regression, result_cross_type_assign_error_clears_success) { auto ok = rfl::Result(42); ASSERT_TRUE(ok); - const auto err = rfl::Result(rfl::Error("fail")); + const auto err = rfl::Result(rfl::error("fail")); ASSERT_FALSE(err); ok = err; - EXPECT_FALSE(ok) - << "After assigning an error Result to Result, " - "the target should be falsy"; + EXPECT_FALSE(ok) << "After assigning an error Result to Result, " + "the target should be falsy"; } } // namespace test_result_cross_assign @@ -26,8 +24,8 @@ namespace test_result_value_or_return_type { TEST(regression, result_value_or_returns_value_not_rvalue_ref) { using ResultType = rfl::Result; - using ReturnType = decltype( - std::declval().value_or(std::string("default"))); + using ReturnType = + decltype(std::declval().value_or(std::string("default"))); constexpr bool returns_value = std::is_same_v; EXPECT_TRUE(returns_value) << "Result::value_or(T&&) should return T by value, not T&&. " @@ -40,13 +38,13 @@ namespace test_result_error_rvalue_return_type { TEST(regression, result_error_rvalue_qualified_returns_rvalue_ref) { using ResultType = rfl::Result; - using ReturnType = - decltype(std::declval().error()); + using ReturnType = decltype(std::declval().error()); constexpr bool returns_rvalue_ref = std::is_same_v; constexpr bool returns_lvalue_ref = std::is_same_v; EXPECT_TRUE(returns_rvalue_ref) << "Result::error() && should return Error&&, not Error&. " - "Currently returns lvalue ref: " << returns_lvalue_ref; + "Currently returns lvalue ref: " + << returns_lvalue_ref; } } // namespace test_result_error_rvalue_return_type diff --git a/tests/json/test_enum8.cpp b/tests/json/test_enum8.cpp index b64a4eb6f..8461a5538 100644 --- a/tests/json/test_enum8.cpp +++ b/tests/json/test_enum8.cpp @@ -27,6 +27,8 @@ struct SomeClass { }; TEST(json, test_enum8) { + static_assert(rfl::internal::enums::is_flag_enum); + SomeClass t{ .e = TestEnum::None, .f = TestEnum::Hello, .g = TestEnum::HelloWorld}; diff --git a/tests/json/test_replace.cpp b/tests/json/test_replace.cpp index cbeac6268..3b706feff 100644 --- a/tests/json/test_replace.cpp +++ b/tests/json/test_replace.cpp @@ -19,10 +19,17 @@ TEST(json, test_replace) { .last_name = "Simpson", .children = rfl::make_box>()}; - const auto maggie = rfl::replace( + auto maggie = rfl::replace( std::move(lisa), rfl::make_field<"firstName">(std::string("Maggie"))); write_and_read( maggie, R"({"firstName":"Maggie","lastName":"Simpson","children":[]})"); + + auto bart = + rfl::replace(std::move(maggie), + rfl::make_field<&Person::first_name>(std::string("Bart"))); + + write_and_read(bart, + R"({"firstName":"Bart","lastName":"Simpson","children":[]})"); } } // namespace test_replace diff --git a/tests/json/test_replace2.cpp b/tests/json/test_replace2.cpp index 7a4d5a171..c39f4190f 100644 --- a/tests/json/test_replace2.cpp +++ b/tests/json/test_replace2.cpp @@ -19,10 +19,17 @@ TEST(json, test_replace2) { .last_name = "Simpson", .children = rfl::make_box>()}; - const auto maggie = rfl::replace( + auto maggie = rfl::replace( std::move(lisa), rfl::make_field<"first_name">(std::string("Maggie"))); write_and_read( maggie, R"({"first_name":"Maggie","last_name":"Simpson","children":[]})"); + + const auto bart = + rfl::replace(std::move(maggie), + rfl::make_field<&Person::first_name>(std::string("Bart"))); + + write_and_read( + bart, R"({"first_name":"Bart","last_name":"Simpson","children":[]})"); } } // namespace test_replace2 diff --git a/tests/json/test_save_load.cpp b/tests/json/test_save_load.cpp index eccd4e2aa..e5048f2c3 100644 --- a/tests/json/test_save_load.cpp +++ b/tests/json/test_save_load.cpp @@ -1,3 +1,5 @@ +#include + #include #include #include @@ -5,8 +7,6 @@ #include #include -#include - namespace test_save_load { using Age = rfl::Validator({bart, lisa, maggie})}; - rfl::json::save("homer.json", homer1); + rfl::json::save("homer.json", homer1).value(); const auto homer2 = rfl::json::load("homer.json").value(); const auto string1 = rfl::json::write(homer1); const auto string2 = rfl::json::write(homer2); - EXPECT_EQ(string1, string2) << "Test failed. Content was not identical." << std::endl - << std::endl; + EXPECT_EQ(string1, string2) + << "Test failed. Content was not identical." << std::endl + << std::endl; } } // namespace test_save_load diff --git a/tests/json_c_arrays_and_inheritance/test_inheritance3.cpp b/tests/json_c_arrays_and_inheritance/test_inheritance3.cpp new file mode 100644 index 000000000..0872b46a7 --- /dev/null +++ b/tests/json_c_arrays_and_inheritance/test_inheritance3.cpp @@ -0,0 +1,30 @@ +#ifdef REFLECTCPP_USE_CPP26_REFLECTION + +// Only supported with C++26 reflection + +#include + +#include +#include + +#include "write_and_read.hpp" + +namespace test_inheritance3 { + +struct Base { + int x; +}; + +struct Derived : public Base { + int y; +}; + +TEST(json, test_inheritance3) { + // Inheritance does not mix with designated initializers. + const auto derived = Derived{1, 2}; + write_and_read(derived, R"({"x":1,"y":2})"); +} + +} // namespace test_inheritance3 + +#endif diff --git a/vcpkg.json b/vcpkg.json index 48c5b0e53..970cccb09 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -74,7 +74,7 @@ "dependencies": [ { "name": "jsoncons", - "version>=": "1.4.0" + "version>=": "1.9.0" } ] }, @@ -166,7 +166,7 @@ "dependencies": [ { "name": "jsoncons", - "version>=": "1.4.0" + "version>=": "1.9.0" } ] },