diff --git a/.github/workflows/actions_build.yml b/.github/workflows/actions_build.yml index 43c2d88..8097135 100644 --- a/.github/workflows/actions_build.yml +++ b/.github/workflows/actions_build.yml @@ -148,8 +148,49 @@ jobs: - name: Documentation working-directory: ${{runner.workspace}}/build shell: bash - run: make doc_comms + run: make doc_comms + + build_gcc_ubuntu_24_04: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + type: [Debug, Release, MinSizeRel] + cc_ver: [13, 14] + cpp: [11, 14, 17, 20] + + steps: + - uses: actions/checkout@v4 + + - name: Prepare Install + run: sudo apt-get update --fix-missing + - name: Install Packages + run: sudo apt install doxygen dia gcc-${{matrix.cc_ver}} g++-${{matrix.cc_ver}} + + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/build + + - name: Configure CMake + shell: bash + working-directory: ${{runner.workspace}}/build + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DCC_COMMS_BUILD_UNIT_TESTS=ON + env: + CC: gcc-${{matrix.cc_ver}} + CXX: g++-${{matrix.cc_ver}} + + - name: Build + working-directory: ${{runner.workspace}}/build + shell: bash + run: cmake --build . --config ${{matrix.type}} --target install + env: + VERBOSE: 1 + + - name: Test + working-directory: ${{runner.workspace}}/build + shell: bash + run: ctest -V + build_clang_old_ubuntu_20_04: runs-on: ubuntu-20.04 strategy: @@ -296,7 +337,48 @@ jobs: - name: Documentation working-directory: ${{runner.workspace}}/build shell: bash - run: make doc_comms + run: make doc_comms + + build_clang_ubuntu_24_04: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + type: [Debug, Release, MinSizeRel] + cc_ver: [16, 17, 18] + cpp: [11, 14, 17, 20] + + steps: + - uses: actions/checkout@v4 + + - name: Prepare Install + run: sudo apt-get update --fix-missing + + - name: Install Packages + run: sudo apt install doxygen dia clang-${{matrix.cc_ver}} + + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/build + + - name: Configure CMake + shell: bash + working-directory: ${{runner.workspace}}/build + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DCC_COMMS_BUILD_UNIT_TESTS=ON + env: + CC: clang-${{matrix.cc_ver}} + CXX: clang++-${{matrix.cc_ver}} + + - name: Build + working-directory: ${{runner.workspace}}/build + shell: bash + run: cmake --build . --config ${{matrix.type}} --target install + env: + VERBOSE: 1 + + - name: Test + working-directory: ${{runner.workspace}}/build + shell: bash + run: ctest -V build_msvc_2019: runs-on: windows-2019 diff --git a/include/comms/details/fields_access.h b/include/comms/details/fields_access.h index c320875..41a6f94 100644 --- a/include/comms/details/fields_access.h +++ b/include/comms/details/fields_access.h @@ -191,7 +191,156 @@ #define COMMS_FIELD_ACC_FUNC_50(T_, t_, n_, ...) \ COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_49(T_, t_, __VA_ARGS__)) - +#define COMMS_FIELD_ACC_FUNC_51(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_49(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_52(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_51(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_53(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_52(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_54(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_53(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_55(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_54(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_56(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_55(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_57(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_56(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_58(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_57(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_59(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_58(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_60(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_59(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_61(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_60(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_62(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_61(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_63(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_62(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_64(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_63(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_65(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_64(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_66(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_65(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_67(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_66(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_68(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_67(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_69(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_68(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_70(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_69(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_71(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_70(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_72(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_71(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_73(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_72(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_74(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_73(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_75(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_74(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_76(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_75(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_77(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_76(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_78(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_77(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_79(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_78(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_80(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_79(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_81(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_80(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_82(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_81(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_83(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_82(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_84(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_83(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_85(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_84(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_86(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_85(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_87(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_86(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_88(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_87(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_89(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_88(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_90(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_89(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_91(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_90(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_92(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_91(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_93(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_92(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_94(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_93(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_95(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_94(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_96(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_95(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_97(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_96(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_98(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_97(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_99(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_98(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_100(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_99(T_, t_, __VA_ARGS__)) #define COMMS_CHOOSE_FIELD_ACC_FUNC_(N, T_, t_, ...) COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_ ## N(T_, t_, __VA_ARGS__)) #define COMMS_CHOOSE_FIELD_ACC_FUNC(N, T_, t_, ...) COMMS_EXPAND(COMMS_CHOOSE_FIELD_ACC_FUNC_(N, T_, t_, __VA_ARGS__)) @@ -352,6 +501,163 @@ #define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_48(n_, ...) \ COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_47(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_49(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_48(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_50(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_49(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_51(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_50(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_52(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_51(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_53(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_52(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_54(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_53(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_55(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_54(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_56(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_55(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_57(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_56(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_58(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_57(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_59(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_58(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_60(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_59(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_61(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_60(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_62(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_61(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_63(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_62(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_64(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_63(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_65(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_64(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_66(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_65(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_67(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_66(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_68(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_67(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_69(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_68(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_70(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_69(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_71(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_70(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_72(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_71(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_73(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_72(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_74(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_73(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_75(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_74(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_76(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_75(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_77(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_76(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_78(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_77(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_79(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_78(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_80(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_79(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_81(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_80(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_82(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_81(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_83(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_82(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_84(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_83(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_85(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_84(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_86(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_85(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_87(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_86(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_88(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_87(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_89(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_88(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_90(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_89(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_91(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_90(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_92(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_91(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_93(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_92(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_94(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_93(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_95(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_94(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_96(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_95(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_97(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_96(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_98(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_97(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_99(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_98(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_100(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_99(__VA_ARGS__)) + #define COMMS_CHOOSE_FIELD_ACC_FUNC_NOTEMPLATE_(N, ...) COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_ ## N(__VA_ARGS__)) #define COMMS_CHOOSE_FIELD_ACC_FUNC_NOTEMPLATE(N, ...) COMMS_EXPAND(COMMS_CHOOSE_FIELD_ACC_FUNC_NOTEMPLATE_(N, __VA_ARGS__)) diff --git a/include/comms/version.h b/include/comms/version.h index 2ad03a3..4bb82c3 100644 --- a/include/comms/version.h +++ b/include/comms/version.h @@ -17,7 +17,7 @@ #define COMMS_MINOR_VERSION 2U /// @brief Patch level of the library -#define COMMS_PATCH_VERSION 5U +#define COMMS_PATCH_VERSION 6U /// @brief Macro to create numeric version as single unsigned number #define COMMS_MAKE_VERSION(major_, minor_, patch_) \