diff --git a/.github/workflows/clang-c++11.yml b/.github/workflows/clang-c++11.yml index 39c0a0a4..2747e156 100644 --- a/.github/workflows/clang-c++11.yml +++ b/.github/workflows/clang-c++11.yml @@ -50,7 +50,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -78,7 +78,7 @@ jobs: export CXX=clang++ export CXXFLAGS="-stdlib=libc++" export LDFLAGS="-stdlib=libc++" - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -99,7 +99,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/clang-c++14.yml b/.github/workflows/clang-c++14.yml index e7909302..b72f896a 100644 --- a/.github/workflows/clang-c++14.yml +++ b/.github/workflows/clang-c++14.yml @@ -50,7 +50,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -78,7 +78,7 @@ jobs: export CXX=clang++ export CXXFLAGS="-stdlib=libc++" export LDFLAGS="-stdlib=libc++" - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -99,7 +99,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/clang-c++17.yml b/.github/workflows/clang-c++17.yml index 54b05957..8fdb32bf 100644 --- a/.github/workflows/clang-c++17.yml +++ b/.github/workflows/clang-c++17.yml @@ -50,7 +50,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -78,7 +78,7 @@ jobs: export CXX=clang++ export CXXFLAGS="-stdlib=libc++" export LDFLAGS="-stdlib=libc++" - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -99,7 +99,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/clang-c++20.yml b/.github/workflows/clang-c++20.yml index eb6d6bf5..5a84a5d4 100644 --- a/.github/workflows/clang-c++20.yml +++ b/.github/workflows/clang-c++20.yml @@ -62,7 +62,7 @@ jobs: export CXX=clang++-17 export CXXFLAGS="-stdlib=libc++" export LDFLAGS="-stdlib=libc++" - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./ clang-17 --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -90,7 +90,7 @@ jobs: run: | export CC=clang-17 export CXX=clang++-17 - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./ clang-17 --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -118,7 +118,7 @@ jobs: run: | export CC=clang-17 export CXX=clang++-17 - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./ clang-17 --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -146,7 +146,7 @@ jobs: run: | export CC=clang-17 export CXX=clang++-17 - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./ clang-17 --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -167,7 +167,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -188,7 +188,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -209,7 +209,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -230,7 +230,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/clang-c++23.yml b/.github/workflows/clang-c++23.yml index 97ba5af3..56540778 100644 --- a/.github/workflows/clang-c++23.yml +++ b/.github/workflows/clang-c++23.yml @@ -57,7 +57,7 @@ jobs: export CXX=clang++ export CXXFLAGS="-stdlib=libc++" export LDFLAGS="-stdlib=libc++" - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -86,7 +86,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -107,7 +107,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -128,7 +128,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -149,7 +149,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -170,7 +170,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -191,7 +191,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -212,7 +212,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 -DETL_ENABLE_SANITIZER=ON ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/clang-c++26.yml b/.github/workflows/clang-c++26.yml index 5905289a..05efeec2 100644 --- a/.github/workflows/clang-c++26.yml +++ b/.github/workflows/clang-c++26.yml @@ -55,7 +55,7 @@ jobs: export CXX=clang++ && \ export CXXFLAGS=-stdlib=libc++ && \ export LDFLAGS=-stdlib=libc++ && \ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ && \ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ && \ clang --version && \ make -j \$(getconf _NPROCESSORS_ONLN) && \ ./test/etl_tests -v" @@ -76,7 +76,7 @@ jobs: cd /workspaces/etl && \ export CC=clang && \ export CXX=clang++ && \ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ && \ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ && \ clang --version && \ make -j \$(getconf _NPROCESSORS_ONLN) && \ ./test/etl_tests -v" @@ -97,7 +97,7 @@ jobs: cd /workspaces/etl && \ export CC=clang && \ export CXX=clang++ && \ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ && \ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ && \ clang --version && \ make -j \$(getconf _NPROCESSORS_ONLN) && \ ./test/etl_tests -v" @@ -118,7 +118,7 @@ jobs: cd /workspaces/etl && \ export CC=clang && \ export CXX=clang++ && \ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./ && \ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./ && \ clang --version && \ make -j \$(getconf _NPROCESSORS_ONLN) && \ ./test/etl_tests -v" @@ -139,7 +139,7 @@ jobs: cd /workspaces/etl && \ export CC=clang && \ export CXX=clang++ && \ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./ && \ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./ && \ clang --version && \ make -j \$(getconf _NPROCESSORS_ONLN) && \ ./test/etl_tests -v" @@ -158,7 +158,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -179,7 +179,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -200,7 +200,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -221,7 +221,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./ + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./ clang --version make -j "$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/clang-syntax-checks.yml b/.github/workflows/clang-syntax-checks.yml index 25795ebe..8d1ddf1b 100644 --- a/.github/workflows/clang-syntax-checks.yml +++ b/.github/workflows/clang-syntax-checks.yml @@ -49,7 +49,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=03 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=03 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -67,7 +67,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=03 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=03 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -85,7 +85,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -103,7 +103,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -121,7 +121,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=11 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=11 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -139,7 +139,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=11 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=11 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -157,7 +157,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -175,7 +175,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -193,7 +193,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=14 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=14 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -211,7 +211,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=14 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=14 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -229,7 +229,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -247,7 +247,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -265,7 +265,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=17 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=17 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -283,7 +283,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=17 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=17 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -301,7 +301,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -319,7 +319,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -337,7 +337,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -355,7 +355,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -373,7 +373,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -391,7 +391,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -409,7 +409,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -427,7 +427,7 @@ jobs: run: | export CC=clang export CXX=clang++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 ./test/syntax_check clang --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -447,7 +447,7 @@ jobs: cd /workspaces/etl && \ export CC=clang && \ export CXX=clang++ && \ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./test/syntax_check && \ + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./test/syntax_check && \ clang++ --version && \ make -j \$(getconf _NPROCESSORS_ONLN)" @@ -467,7 +467,7 @@ jobs: cd /workspaces/etl && \ export CC=clang && \ export CXX=clang++ && \ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./test/syntax_check && \ + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./test/syntax_check && \ clang++ --version && \ make -j \$(getconf _NPROCESSORS_ONLN)" @@ -487,7 +487,7 @@ jobs: cd /workspaces/etl && \ export CC=clang && \ export CXX=clang++ && \ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./test/syntax_check && \ + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./test/syntax_check && \ clang++ --version && \ make -j \$(getconf _NPROCESSORS_ONLN)" @@ -507,6 +507,6 @@ jobs: cd /workspaces/etl && \ export CC=clang && \ export CXX=clang++ && \ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./test/syntax_check && \ + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./test/syntax_check && \ clang++ --version && \ make -j \$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/gcc-c++11.yml b/.github/workflows/gcc-c++11.yml index 71a5809e..3cbdd12a 100644 --- a/.github/workflows/gcc-c++11.yml +++ b/.github/workflows/gcc-c++11.yml @@ -51,7 +51,7 @@ jobs: git fetch export CC=gcc export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./ gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -73,7 +73,7 @@ jobs: git fetch export CC=gcc export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./ gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/gcc-c++14.yml b/.github/workflows/gcc-c++14.yml index 0cb6dc2c..45791462 100644 --- a/.github/workflows/gcc-c++14.yml +++ b/.github/workflows/gcc-c++14.yml @@ -50,7 +50,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./ gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -71,7 +71,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./ gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/gcc-c++17.yml b/.github/workflows/gcc-c++17.yml index 4968a87d..23a9cc39 100644 --- a/.github/workflows/gcc-c++17.yml +++ b/.github/workflows/gcc-c++17.yml @@ -50,7 +50,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./ gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -71,7 +71,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./ gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/gcc-c++20.yml b/.github/workflows/gcc-c++20.yml index 68be97d8..8561b6b8 100644 --- a/.github/workflows/gcc-c++20.yml +++ b/.github/workflows/gcc-c++20.yml @@ -50,7 +50,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./ gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -71,7 +71,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./ gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -92,7 +92,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./ gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -113,7 +113,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./ gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/gcc-c++23-armhf.yml b/.github/workflows/gcc-c++23-armhf.yml index 00cb78d6..0c82ac33 100644 --- a/.github/workflows/gcc-c++23-armhf.yml +++ b/.github/workflows/gcc-c++23-armhf.yml @@ -49,7 +49,7 @@ jobs: - name: Build and run tests run: | docker run --rm --user root -v ${{ github.workspace }}:/workspaces/etl etl-armhf bash -c "\ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF \ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF \ -DETL_CXX_STANDARD=23 -DCMAKE_TOOLCHAIN_FILE=.devcontainer/armhf/toolchain-armhf.cmake \ -DEXTRA_TESTING_FLAGS=-v \ ./ && \ diff --git a/.github/workflows/gcc-c++23-i386.yml b/.github/workflows/gcc-c++23-i386.yml index dec5833f..9ea63944 100644 --- a/.github/workflows/gcc-c++23-i386.yml +++ b/.github/workflows/gcc-c++23-i386.yml @@ -49,7 +49,7 @@ jobs: - name: Build and run tests run: | docker run --rm --user root -v ${{ github.workspace }}:/workspaces/etl etl-i386 bash -c "\ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF \ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF \ -DETL_CXX_STANDARD=23 -DCMAKE_TOOLCHAIN_FILE=.devcontainer/i386/toolchain-i386.cmake \ -DEXTRA_TESTING_FLAGS=-v \ ./ && \ diff --git a/.github/workflows/gcc-c++23-powerpc.yml b/.github/workflows/gcc-c++23-powerpc.yml index 71a90f20..58d3e36b 100644 --- a/.github/workflows/gcc-c++23-powerpc.yml +++ b/.github/workflows/gcc-c++23-powerpc.yml @@ -49,7 +49,7 @@ jobs: - name: Build and run tests run: | docker run --rm --user root -v ${{ github.workspace }}:/workspaces/etl etl-powerpc bash -c "\ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF \ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF \ -DETL_CXX_STANDARD=23 -DCMAKE_TOOLCHAIN_FILE=.devcontainer/powerpc/toolchain-powerpc.cmake \ -DEXTRA_TESTING_FLAGS=-v \ ./ && \ diff --git a/.github/workflows/gcc-c++23-riscv64.yml b/.github/workflows/gcc-c++23-riscv64.yml index b7a2611d..7732ea8b 100644 --- a/.github/workflows/gcc-c++23-riscv64.yml +++ b/.github/workflows/gcc-c++23-riscv64.yml @@ -49,7 +49,7 @@ jobs: - name: Build and run tests run: | docker run --rm --user root -v ${{ github.workspace }}:/workspaces/etl etl-riscv64 bash -c "\ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF \ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF \ -DETL_CXX_STANDARD=23 -DCMAKE_TOOLCHAIN_FILE=.devcontainer/riscv64/toolchain-riscv64.cmake \ -DEXTRA_TESTING_FLAGS=-v \ ./ && \ diff --git a/.github/workflows/gcc-c++23-s390x.yml b/.github/workflows/gcc-c++23-s390x.yml index 365f44dc..b4d3db6d 100644 --- a/.github/workflows/gcc-c++23-s390x.yml +++ b/.github/workflows/gcc-c++23-s390x.yml @@ -49,7 +49,7 @@ jobs: - name: Build and run tests run: | docker run --rm --user root -v ${{ github.workspace }}:/workspaces/etl etl-s390x bash -c "\ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF \ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF \ -DETL_CXX_STANDARD=23 -DCMAKE_TOOLCHAIN_FILE=.devcontainer/s390x/toolchain-s390x.cmake \ -DEXTRA_TESTING_FLAGS=-v \ ./ && \ diff --git a/.github/workflows/gcc-c++23.yml b/.github/workflows/gcc-c++23.yml index 65cf7dc4..dc559c30 100644 --- a/.github/workflows/gcc-c++23.yml +++ b/.github/workflows/gcc-c++23.yml @@ -50,7 +50,7 @@ jobs: run: | export CC=gcc-14 export CXX=g++-14 - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 ./ gcc-14 --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -71,7 +71,7 @@ jobs: run: | export CC=gcc-14 export CXX=g++-14 - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 ./ gcc-14 --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -92,7 +92,7 @@ jobs: run: | export CC=gcc-14 export CXX=g++-14 - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 ./ gcc-14 --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -113,7 +113,7 @@ jobs: run: | export CC=gcc-14 export CXX=g++-14 - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 ./ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 ./ gcc-14 --version make -j "$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/gcc-c++26.yml b/.github/workflows/gcc-c++26.yml index 38506641..28059334 100644 --- a/.github/workflows/gcc-c++26.yml +++ b/.github/workflows/gcc-c++26.yml @@ -52,7 +52,7 @@ jobs: cd /workspaces/etl && \ export CC=gcc && \ export CXX=g++ && \ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ && \ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ && \ gcc --version && \ make -j \$(getconf _NPROCESSORS_ONLN) && \ ./test/etl_tests -v" @@ -73,7 +73,7 @@ jobs: cd /workspaces/etl && \ export CC=gcc && \ export CXX=g++ && \ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ && \ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./ && \ gcc --version && \ make -j \$(getconf _NPROCESSORS_ONLN) && \ ./test/etl_tests -v" @@ -94,7 +94,7 @@ jobs: cd /workspaces/etl && \ export CC=gcc && \ export CXX=g++ && \ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./ && \ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./ && \ gcc --version && \ make -j \$(getconf _NPROCESSORS_ONLN) && \ ./test/etl_tests -v" @@ -115,7 +115,7 @@ jobs: cd /workspaces/etl && \ export CC=gcc && \ export CXX=g++ && \ - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./ && \ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./ && \ gcc --version && \ make -j \$(getconf _NPROCESSORS_ONLN) && \ ./test/etl_tests -v" diff --git a/.github/workflows/gcc-syntax-checks.yml b/.github/workflows/gcc-syntax-checks.yml index 0faa94c0..180b2c1b 100644 --- a/.github/workflows/gcc-syntax-checks.yml +++ b/.github/workflows/gcc-syntax-checks.yml @@ -49,7 +49,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=03 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=03 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -67,7 +67,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=03 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=03 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -85,7 +85,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -103,7 +103,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=11 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -121,7 +121,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=11 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=11 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -139,7 +139,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=11 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=11 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -157,7 +157,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -175,7 +175,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=14 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -193,7 +193,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=14 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=14 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -211,7 +211,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=14 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=14 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -229,7 +229,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -247,7 +247,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=17 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -265,7 +265,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=17 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=17 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -283,7 +283,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=17 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=17 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -301,7 +301,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -319,7 +319,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=20 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -337,7 +337,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -355,7 +355,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=20 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -373,7 +373,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -391,7 +391,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -409,7 +409,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 ./test/syntax_check + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -427,7 +427,7 @@ jobs: run: | export CC=gcc export CXX=g++ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 ./test/syntax_check + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 ./test/syntax_check gcc --version make -j "$(getconf _NPROCESSORS_ONLN)" @@ -447,7 +447,7 @@ jobs: cd /workspaces/etl && \ export CC=gcc && \ export CXX=g++ && \ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./test/syntax_check && \ + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./test/syntax_check && \ gcc --version && \ make -j \$(getconf _NPROCESSORS_ONLN)" @@ -467,7 +467,7 @@ jobs: cd /workspaces/etl && \ export CC=gcc && \ export CXX=g++ && \ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./test/syntax_check && \ + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=26 ./test/syntax_check && \ gcc --version && \ make -j \$(getconf _NPROCESSORS_ONLN)" @@ -487,7 +487,7 @@ jobs: cd /workspaces/etl && \ export CC=gcc && \ export CXX=g++ && \ - cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./test/syntax_check && \ + cmake -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./test/syntax_check && \ gcc --version && \ make -j \$(getconf _NPROCESSORS_ONLN)" @@ -507,6 +507,6 @@ jobs: cd /workspaces/etl && \ export CC=gcc && \ export CXX=g++ && \ - cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./test/syntax_check && \ + cmake -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=26 ./test/syntax_check && \ gcc --version && \ make -j \$(getconf _NPROCESSORS_ONLN)" diff --git a/.github/workflows/msvc.yml b/.github/workflows/msvc.yml index dd5d3e45..2f7fcae0 100644 --- a/.github/workflows/msvc.yml +++ b/.github/workflows/msvc.yml @@ -54,7 +54,7 @@ jobs: - name: Build run: | - cmake -G "Visual Studio 17 2022" -AWin32 -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=${{ matrix.cxx_standard }} ./ + cmake -G "Visual Studio 17 2022" -AWin32 -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=${{ matrix.cxx_standard }} ./ MSBuild.exe -version MSBuild.exe .\etl.sln @@ -79,7 +79,7 @@ jobs: - name: Build run: | - cmake -G "Visual Studio 17 2022" -AWin32 -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=${{ matrix.cxx_standard }} ./ + cmake -G "Visual Studio 17 2022" -AWin32 -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=${{ matrix.cxx_standard }} ./ MSBuild.exe -version MSBuild.exe .\etl.sln @@ -105,7 +105,7 @@ jobs: - name: Build run: | - cmake -G "Visual Studio 17 2022" -AWin32 -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=${{ matrix.cxx_standard }} ./ + cmake -G "Visual Studio 17 2022" -AWin32 -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=${{ matrix.cxx_standard }} ./ MSBuild.exe -version MSBuild.exe .\etl.sln @@ -131,7 +131,7 @@ jobs: - name: Build run: | - cmake -G "Visual Studio 17 2022" -AWin32 -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=${{ matrix.cxx_standard }} ./ + cmake -G "Visual Studio 17 2022" -AWin32 -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=${{ matrix.cxx_standard }} ./ MSBuild.exe -version MSBuild.exe .\etl.sln diff --git a/docs/containers/queues & stacks/circular-buffer.md b/docs/containers/queues & stacks/circular-buffer.md index 3c3faf2a..8bc2017c 100644 --- a/docs/containers/queues & stacks/circular-buffer.md +++ b/docs/containers/queues & stacks/circular-buffer.md @@ -123,6 +123,7 @@ const_reference operator[](size_t i) const ``` **Description** Returns a reference or const reference to the indexed element. +Emits an `etl::circular_buffer_out_of_bounds` if ETL_CHECK_INDEX_OPERATOR is defined and the index is out of range of the circular buffer. Undefined behaviour if asserts or exceptions are not enabled. --- diff --git a/docs/containers/queues & stacks/deque.md b/docs/containers/queues & stacks/deque.md index b0bb1ad1..9b124338 100644 --- a/docs/containers/queues & stacks/deque.md +++ b/docs/containers/queues & stacks/deque.md @@ -92,7 +92,7 @@ const T& at(size_t i) const ``` **Description** Returns a reference or const reference to the indexed element. -Emits an `etl::deque_out_of_range` if the index is out of range of the array. Undefined behaviour if asserts or exceptions are not enabled. +Emits an `etl::deque_out_of_bounds` if the index is out of range of the deque. Undefined behaviour if asserts or exceptions are not enabled. --- @@ -102,6 +102,7 @@ const T& operator[](size_t i) const ``` **Description** Returns a reference or const reference to the indexed element. +Emits an `etl::deque_out_of_bounds` if ETL_CHECK_INDEX_OPERATOR is defined and the index is out of range of the deque. Undefined behaviour if asserts or exceptions are not enabled. --- diff --git a/docs/containers/variadics/variant-variadic.md b/docs/containers/variadics/variant-variadic.md index 62ebd7e9..6ed9de14 100644 --- a/docs/containers/variadics/variant-variadic.md +++ b/docs/containers/variadics/variant-variadic.md @@ -4,19 +4,16 @@ title: "variant" {{< callout type="info">}} Header: `variant.h` - Similar to: `std::variant` + Similar to: `std::variant` + For C++11 and above. {{< /callout >}} -**For C++11 and above.** - ```cpp template class variant ``` A variadic class that can contain one a several specified types in a type safe manner. -C++11 and C++14 support up to 32 types for visitor callback callbacks. -C++17 and above supports any number of visitor callback types. Accepts functors, `etl::overload` and `etl::visitor` types as visitor callbacks. @@ -400,37 +397,42 @@ ETL_CONSTEXPR14 bool holds_alternative(size_t index, const etl::variant}} +### Before: `20.50.0` +- C++11 and C++14: +Supports up to 32 types of functor, `etl::visitor`, or `etl::overload` callback types. +- C++17 and above: +Supports any number of functor or `etl::visitor`, or `etl::overload`callback types. -`etl::variant` provides member functions that support two methods of visitation. +### From: `20.50.0` +- Supports any number of visitor callback types. +- Compiles to smaller object code. +{{< /callout >}} ---- +### etl::visitor ```cpp void accept_visitor(etl::visitor& v) ``` **Description** Accepts an `etl::visitor` derived type. +{{< callout type="warning">}} Deprecated from `20.36.0` +{{< /callout >}} + +--- ```cpp void accept_visitor(etl::visitor& v) const ``` **Description** Accepts `an etl::visitor` derived type. -Deprecated -Since: `20.36.0` +{{< callout type="warning">}} +Deprecated from `20.36.0` +{{< /callout >}} --- @@ -438,7 +440,7 @@ Since: `20.36.0` void accept(etl::visitor& v) ``` **Description** -Accepts an `etl::visitor` derived type. +Accepts an `etl::visitor` derived type. Since: `20.36.0` --- @@ -450,9 +452,9 @@ void accept(etl::visitor& v) const Accepts an `etl::visitor` derived type. Since: `20.36.0` -See `visitor` +[See visitor]({{< relref "../../patterns/visitor.md" >}}) ---- +### Functors ```cpp template @@ -460,7 +462,9 @@ void accept_functor(TVisitor& v) ``` **Description** Accepts a functor that overrides `operator()` for each type. -Deprecated since `20.36.0` +{{< callout type="warning">}} +Deprecated from `20.36.0` +{{< /callout >}} --- @@ -470,7 +474,9 @@ void accept_functor(TVisitor& v) const ``` **Description** Accepts a functor that overrides `operator()` for each type. -Deprecated since `20.36.0` +{{< callout type="warning">}} +Deprecated from `20.36.0` +{{< /callout >}} --- @@ -479,7 +485,7 @@ template void accept(TVisitor& v) ``` **Description** -Accepts a functor that overrides `operator()` for each type. +Accepts a functor that overrides `operator()` for each type. Since: `20.36.0` --- @@ -489,13 +495,14 @@ template void accept(TVisitor& v) const ``` **Description** -Accepts a functor that overrides `operator()` for each type. +Accepts a functor that overrides `operator()` for each type. Since: `20.36.0` See overload -## Visitation -For STL style `etl::visit`. +### etl::visit + +For STL style `etl::visit`. Since: `20.28.0` The ETL implements an STL style visit function. diff --git a/docs/utilities/byte-stream-writer.md b/docs/utilities/byte-stream-writer.md index db3c8a62..2ce8a8fb 100644 --- a/docs/utilities/byte-stream-writer.md +++ b/docs/utilities/byte-stream-writer.md @@ -92,6 +92,7 @@ bool write(bool value) **Description** Write a boolean value to the stream. Returns `true` if successful, otherwise `false`. +If a callback is set, it receives the one-byte boolean value after a successful write. --- diff --git a/include/etl/atomic/atomic_gcc_sync.h b/include/etl/atomic/atomic_gcc_sync.h index b3c58bcd..5161abee 100644 --- a/include/etl/atomic/atomic_gcc_sync.h +++ b/include/etl/atomic/atomic_gcc_sync.h @@ -881,7 +881,6 @@ namespace etl { public: - ETL_STATIC_ASSERT((etl::is_trivially_copyable::value), "atomic requires that T is trivially copyable"); ETL_STATIC_ASSERT((etl::is_copy_constructible::value), "atomic requires that T is copy constructible"); ETL_STATIC_ASSERT((etl::is_copy_assignable::value), "atomic requires that T is copy assignable"); ETL_STATIC_ASSERT((etl::is_move_constructible::value), "atomic requires that T is move constructible"); @@ -963,14 +962,15 @@ namespace etl (void)order; ETL_BUILTIN_LOCK; - if (memcmp(&value, &expected, sizeof(T)) == 0) + if (value == expected) { value = desired; result = true; } else { - result = false; + expected = value; + result = false; } ETL_BUILTIN_UNLOCK; @@ -2062,7 +2062,6 @@ namespace etl { public: - ETL_STATIC_ASSERT((etl::is_trivially_copyable::value), "atomic requires that T is trivially copyable"); ETL_STATIC_ASSERT((etl::is_copy_constructible::value), "atomic requires that T is copy constructible"); ETL_STATIC_ASSERT((etl::is_copy_assignable::value), "atomic requires that T is copy assignable"); ETL_STATIC_ASSERT((etl::is_move_constructible::value), "atomic requires that T is move constructible"); @@ -2139,15 +2138,17 @@ namespace etl { bool result; + (void)order; ETL_BUILTIN_LOCK; - if (memcmp(&value, &expected, sizeof(T)) == 0) + if (value == expected) { value = desired; result = true; } else { - result = false; + expected = value; + result = false; } ETL_BUILTIN_UNLOCK; diff --git a/include/etl/byte_stream.h b/include/etl/byte_stream.h index 76a4bf04..4a89c5d4 100644 --- a/include/etl/byte_stream.h +++ b/include/etl/byte_stream.h @@ -126,7 +126,8 @@ namespace etl //*************************************************************************** void write_unchecked(bool value) { - *pcurrent++ = value ? 1 : 0; + *pcurrent = value ? 1 : 0; + step(1U); } //*************************************************************************** diff --git a/include/etl/circular_buffer.h b/include/etl/circular_buffer.h index b0586cfb..c820e09f 100644 --- a/include/etl/circular_buffer.h +++ b/include/etl/circular_buffer.h @@ -83,6 +83,19 @@ namespace etl } }; + //*************************************************************************** + /// circular_buffer out of bounds exception. + //*************************************************************************** + class circular_buffer_out_of_bounds : public etl::circular_buffer_exception + { + public: + + circular_buffer_out_of_bounds(string_type file_name_, numeric_type line_number_) + : etl::circular_buffer_exception(ETL_ERROR_TEXT("circular_buffer:bounds", ETL_CIRCULAR_BUFFER_FILE_ID"C"), file_name_, line_number_) + { + } + }; + //*************************************************************************** /// //*************************************************************************** @@ -888,6 +901,8 @@ namespace etl //************************************************************************* reference operator[](size_t index) { + ETL_ASSERT_CHECK_INDEX_OPERATOR(index < size(), ETL_ERROR(circular_buffer_out_of_bounds)); + return pbuffer[(out + index) % buffer_size]; } @@ -897,6 +912,8 @@ namespace etl //************************************************************************* const_reference operator[](size_t index) const { + ETL_ASSERT_CHECK_INDEX_OPERATOR(index < size(), ETL_ERROR(circular_buffer_out_of_bounds)); + return pbuffer[(out + index) % buffer_size]; } diff --git a/include/etl/deque.h b/include/etl/deque.h index c3ff33d9..918fa4ab 100644 --- a/include/etl/deque.h +++ b/include/etl/deque.h @@ -791,6 +791,8 @@ namespace etl //************************************************************************* reference operator[](size_t index) { + ETL_ASSERT_CHECK_INDEX_OPERATOR(index < current_size, ETL_ERROR(deque_out_of_bounds)); + iterator result(_begin); result += static_cast(index); @@ -803,6 +805,8 @@ namespace etl //************************************************************************* const_reference operator[](size_t index) const { + ETL_ASSERT_CHECK_INDEX_OPERATOR(index < current_size, ETL_ERROR(deque_out_of_bounds)); + iterator result(_begin); result += static_cast(index); diff --git a/include/etl/memory.h b/include/etl/memory.h index 742766c5..a1ddcadf 100644 --- a/include/etl/memory.h +++ b/include/etl/memory.h @@ -132,14 +132,7 @@ namespace etl #endif ETL_STATIC_ASSERT(!etl::is_void::value, "etl::launder argument must not be a void type"); - #if defined(__has_builtin) && !defined(ETL_COMPILER_MICROSOFT) - #if __has_builtin(__builtin_launder) - return __builtin_launder(p); - #else - return p; - #endif - #elif ETL_USING_GCC_COMPILER && (ETL_COMPILER_FULL_VERSION >= 70000) - // GCC 7, 8 and 9 provide __builtin_launder but not __has_builtin. + #if ETL_USING_BUILTIN_LAUNDER return __builtin_launder(p); #else return p; @@ -400,12 +393,8 @@ namespace etl template ETL_NODISCARD ETL_CONSTEXPR T* assume_aligned(T* ptr) ETL_NOEXCEPT { - #if defined(__has_builtin) && !defined(ETL_COMPILER_MICROSOFT) - #if __has_builtin(__builtin_assume_aligned) + #if ETL_USING_BUILTIN_ASSUME_ALIGNED return static_cast(__builtin_assume_aligned(ptr, N)); - #else - return ptr; - #endif #else return ptr; #endif diff --git a/include/etl/private/variant_select_do_operator.h b/include/etl/private/variant_select_do_operator.h deleted file mode 100644 index 42bcb0d0..00000000 --- a/include/etl/private/variant_select_do_operator.h +++ /dev/null @@ -1,3133 +0,0 @@ -/****************************************************************************** -The MIT License(MIT) - -Embedded Template Library. -https://github.com/ETLCPP/etl -https://www.etlcpp.com - -Copyright(c) 2025 John Wellbelove - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files(the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions : - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -******************************************************************************/ - -//*************************************************************************** -// This file is included in variant_variadic.h for C++11 and C++14, as they -// do not support template fold expressions. -//*************************************************************************** - -namespace private_variant -{ - //*************************************************************************** - // Selects a do_operator implementation that is configured for the number of - // types. - //*************************************************************************** - template - struct select_do_operator; - - //*************************************************************************** - template <> - struct select_do_operator<1> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<2> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<3> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<4> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<5> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<6> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<7> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<8> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - default: break; - } - } - }; -#if !defined(ETL_VARIANT_CPP11_MAX_8_TYPES) - //*************************************************************************** - template <> - struct select_do_operator<9> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<10> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<11> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<12> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<13> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<14> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<15> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<16> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - default: break; - } - } - }; - #if !defined(ETL_VARIANT_CPP11_MAX_16_TYPES) - //*************************************************************************** - template <> - struct select_do_operator<17> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<18> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<19> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<20> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<21> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor(etl::get<20>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<22> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor(etl::get<21>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<23> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor(etl::get<22>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<24> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor(etl::get<23>(the_variant)); - break; - } - default: break; - } - } - }; - #if !defined(ETL_VARIANT_CPP11_MAX_24_TYPES) - //*************************************************************************** - template <> - struct select_do_operator<25> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor(etl::get<24>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<26> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor(etl::get<25>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<27> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor(etl::get<25>(the_variant)); - break; - } - case 26: - { - visitor(etl::get<26>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<28> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor(etl::get<25>(the_variant)); - break; - } - case 26: - { - visitor(etl::get<26>(the_variant)); - break; - } - case 27: - { - visitor(etl::get<27>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<29> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor(etl::get<25>(the_variant)); - break; - } - case 26: - { - visitor(etl::get<26>(the_variant)); - break; - } - case 27: - { - visitor(etl::get<27>(the_variant)); - break; - } - case 28: - { - visitor(etl::get<28>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<30> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor(etl::get<25>(the_variant)); - break; - } - case 26: - { - visitor(etl::get<26>(the_variant)); - break; - } - case 27: - { - visitor(etl::get<27>(the_variant)); - break; - } - case 28: - { - visitor(etl::get<28>(the_variant)); - break; - } - case 29: - { - visitor(etl::get<29>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<31> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor(etl::get<25>(the_variant)); - break; - } - case 26: - { - visitor(etl::get<26>(the_variant)); - break; - } - case 27: - { - visitor(etl::get<27>(the_variant)); - break; - } - case 28: - { - visitor(etl::get<28>(the_variant)); - break; - } - case 29: - { - visitor(etl::get<29>(the_variant)); - break; - } - case 30: - { - visitor(etl::get<30>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_operator<32> - { - template - static void do_operator(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor(etl::get<25>(the_variant)); - break; - } - case 26: - { - visitor(etl::get<26>(the_variant)); - break; - } - case 27: - { - visitor(etl::get<27>(the_variant)); - break; - } - case 28: - { - visitor(etl::get<28>(the_variant)); - break; - } - case 29: - { - visitor(etl::get<29>(the_variant)); - break; - } - case 30: - { - visitor(etl::get<30>(the_variant)); - break; - } - case 31: - { - visitor(etl::get<31>(the_variant)); - break; - } - default: break; - } - } - }; - #endif - #endif -#endif -} // namespace private_variant diff --git a/include/etl/private/variant_select_do_visitor.h b/include/etl/private/variant_select_do_visitor.h deleted file mode 100644 index 58a6e2d6..00000000 --- a/include/etl/private/variant_select_do_visitor.h +++ /dev/null @@ -1,3133 +0,0 @@ -/****************************************************************************** -The MIT License(MIT) - -Embedded Template Library. -https://github.com/ETLCPP/etl -https://www.etlcpp.com - -Copyright(c) 2025 John Wellbelove - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files(the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions : - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -******************************************************************************/ - -//*************************************************************************** -// This file is included in variant_variadic.h for C++11 and C++14, as they -// do not support template fold expressions. -//*************************************************************************** - -namespace private_variant -{ - //*************************************************************************** - // Selects a do_visitor implementation that is configured for the number of - // types. - //*************************************************************************** - template - struct select_do_visitor; - - //*************************************************************************** - template <> - struct select_do_visitor<1> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<2> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<3> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<4> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<5> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<6> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<7> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<8> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - default: break; - } - } - }; -#if !defined(ETL_VARIANT_CPP11_MAX_8_TYPES) - //*************************************************************************** - template <> - struct select_do_visitor<9> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<10> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<11> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<12> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<13> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<14> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<15> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<16> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - default: break; - } - } - }; - #if !defined(ETL_VARIANT_CPP11_MAX_16_TYPES) - //*************************************************************************** - template <> - struct select_do_visitor<17> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<18> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<19> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<20> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<21> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor.visit(etl::get<20>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<22> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor.visit(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor.visit(etl::get<21>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<23> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor.visit(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor.visit(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor.visit(etl::get<22>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<24> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor.visit(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor.visit(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor.visit(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor.visit(etl::get<23>(the_variant)); - break; - } - default: break; - } - } - }; - #if !defined(ETL_VARIANT_CPP11_MAX_24_TYPES) - //*************************************************************************** - template <> - struct select_do_visitor<25> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor.visit(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor.visit(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor.visit(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor.visit(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor.visit(etl::get<24>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<26> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor.visit(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor.visit(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor.visit(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor.visit(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor.visit(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor.visit(etl::get<25>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<27> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor.visit(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor.visit(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor.visit(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor.visit(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor.visit(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor.visit(etl::get<25>(the_variant)); - break; - } - case 26: - { - visitor.visit(etl::get<26>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<28> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor.visit(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor.visit(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor.visit(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor.visit(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor.visit(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor.visit(etl::get<25>(the_variant)); - break; - } - case 26: - { - visitor.visit(etl::get<26>(the_variant)); - break; - } - case 27: - { - visitor.visit(etl::get<27>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<29> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor.visit(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor.visit(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor.visit(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor.visit(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor.visit(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor.visit(etl::get<25>(the_variant)); - break; - } - case 26: - { - visitor.visit(etl::get<26>(the_variant)); - break; - } - case 27: - { - visitor.visit(etl::get<27>(the_variant)); - break; - } - case 28: - { - visitor.visit(etl::get<28>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<30> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor.visit(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor.visit(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor.visit(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor.visit(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor.visit(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor.visit(etl::get<25>(the_variant)); - break; - } - case 26: - { - visitor.visit(etl::get<26>(the_variant)); - break; - } - case 27: - { - visitor.visit(etl::get<27>(the_variant)); - break; - } - case 28: - { - visitor.visit(etl::get<28>(the_variant)); - break; - } - case 29: - { - visitor.visit(etl::get<29>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<31> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor.visit(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor.visit(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor.visit(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor.visit(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor.visit(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor.visit(etl::get<25>(the_variant)); - break; - } - case 26: - { - visitor.visit(etl::get<26>(the_variant)); - break; - } - case 27: - { - visitor.visit(etl::get<27>(the_variant)); - break; - } - case 28: - { - visitor.visit(etl::get<28>(the_variant)); - break; - } - case 29: - { - visitor.visit(etl::get<29>(the_variant)); - break; - } - case 30: - { - visitor.visit(etl::get<30>(the_variant)); - break; - } - default: break; - } - } - }; - - //*************************************************************************** - template <> - struct select_do_visitor<32> - { - template - static void do_visitor(TVariant& the_variant, TVisitor& visitor) - { - switch (the_variant.index()) - { - case 0: - { - visitor.visit(etl::get<0>(the_variant)); - break; - } - case 1: - { - visitor.visit(etl::get<1>(the_variant)); - break; - } - case 2: - { - visitor.visit(etl::get<2>(the_variant)); - break; - } - case 3: - { - visitor.visit(etl::get<3>(the_variant)); - break; - } - case 4: - { - visitor.visit(etl::get<4>(the_variant)); - break; - } - case 5: - { - visitor.visit(etl::get<5>(the_variant)); - break; - } - case 6: - { - visitor.visit(etl::get<6>(the_variant)); - break; - } - case 7: - { - visitor.visit(etl::get<7>(the_variant)); - break; - } - case 8: - { - visitor.visit(etl::get<8>(the_variant)); - break; - } - case 9: - { - visitor.visit(etl::get<9>(the_variant)); - break; - } - case 10: - { - visitor.visit(etl::get<10>(the_variant)); - break; - } - case 11: - { - visitor.visit(etl::get<11>(the_variant)); - break; - } - case 12: - { - visitor.visit(etl::get<12>(the_variant)); - break; - } - case 13: - { - visitor.visit(etl::get<13>(the_variant)); - break; - } - case 14: - { - visitor.visit(etl::get<14>(the_variant)); - break; - } - case 15: - { - visitor.visit(etl::get<15>(the_variant)); - break; - } - case 16: - { - visitor.visit(etl::get<16>(the_variant)); - break; - } - case 17: - { - visitor.visit(etl::get<17>(the_variant)); - break; - } - case 18: - { - visitor.visit(etl::get<18>(the_variant)); - break; - } - case 19: - { - visitor.visit(etl::get<19>(the_variant)); - break; - } - case 20: - { - visitor.visit(etl::get<20>(the_variant)); - break; - } - case 21: - { - visitor.visit(etl::get<21>(the_variant)); - break; - } - case 22: - { - visitor.visit(etl::get<22>(the_variant)); - break; - } - case 23: - { - visitor.visit(etl::get<23>(the_variant)); - break; - } - case 24: - { - visitor.visit(etl::get<24>(the_variant)); - break; - } - case 25: - { - visitor.visit(etl::get<25>(the_variant)); - break; - } - case 26: - { - visitor.visit(etl::get<26>(the_variant)); - break; - } - case 27: - { - visitor.visit(etl::get<27>(the_variant)); - break; - } - case 28: - { - visitor.visit(etl::get<28>(the_variant)); - break; - } - case 29: - { - visitor.visit(etl::get<29>(the_variant)); - break; - } - case 30: - { - visitor.visit(etl::get<30>(the_variant)); - break; - } - case 31: - { - visitor.visit(etl::get<31>(the_variant)); - break; - } - default: break; - } - } - }; - #endif - #endif -#endif -} // namespace private_variant diff --git a/include/etl/private/variant_variadic.h b/include/etl/private/variant_variadic.h index d0d5674b..c7a31897 100644 --- a/include/etl/private/variant_variadic.h +++ b/include/etl/private/variant_variadic.h @@ -403,11 +403,6 @@ namespace etl template ETL_CONSTEXPR14 const T&& get(const etl::variant&& v); - #if ETL_NOT_USING_CPP17 - #include "variant_select_do_operator.h" - #include "variant_select_do_visitor.h" - #endif - constexpr bool operator>(etl::monostate, etl::monostate) ETL_NOEXCEPT { return false; @@ -439,7 +434,7 @@ namespace etl } #endif - #if ETL_NOT_USING_STL && !defined(ETL_USE_TYPE_TRAITS_BUILTINS) + #if ETL_NOT_USING_STL template <> struct is_copy_constructible : public etl::true_type { @@ -1571,25 +1566,6 @@ namespace etl { (attempt_visitor(visitor) || ...); } - #else - //*************************************************************************** - /// Call the relevant visitor. - //*************************************************************************** - template - void do_visitor(TVisitor& visitor) - { - etl::private_variant::select_do_visitor::do_visitor(*this, visitor); - } - - //*************************************************************************** - /// Call the relevant visitor. - //*************************************************************************** - template - void do_visitor(TVisitor& visitor) const - { - etl::private_variant::select_do_visitor::do_visitor(*this, visitor); - } - #endif //*************************************************************************** /// Attempt to call a visitor. @@ -1633,6 +1609,81 @@ namespace etl } } + #else + + //*************************************************************************** + /// Call the relevant visitor. + //*************************************************************************** + template + void do_visitor(TVisitor& visitor) + { + do_visitor_at(visitor, etl::make_index_sequence{}); + } + + //*************************************************************************** + /// Call the relevant visitor. + //*************************************************************************** + template + void do_visitor(TVisitor& visitor) const + { + do_visitor_at(visitor, etl::make_index_sequence{}); + } + + //*************************************************************************** + /// Base case: exactly one index remains. + /// Check Index against this->index() to see if it's actually the match. + //*************************************************************************** + template + void do_visitor_at(TVisitor& visitor, etl::index_sequence) + { + if (Index == index()) + { + visitor.visit(etl::get(*this)); + } + } + + template + void do_visitor_at(TVisitor& visitor, etl::index_sequence) const + { + if (Index == index()) + { + visitor.visit(etl::get(*this)); + } + } + + //*************************************************************************** + /// Recursive case: check Index against this->index(), otherwise defer. + //*************************************************************************** + template + void do_visitor_at(TVisitor& visitor, etl::index_sequence) + { + if (Index == index()) + { + visitor.visit(etl::get(*this)); + } + else + { + do_visitor_at(visitor, etl::index_sequence{}); + } + } + + //*************************************************************************** + /// Recursive case: check Index against this->index(), otherwise defer. + //*************************************************************************** + template + void do_visitor_at(TVisitor& visitor, etl::index_sequence) const + { + if (Index == index()) + { + visitor.visit(etl::get(*this)); + } + else + { + do_visitor_at(visitor, etl::index_sequence{}); + } + } + #endif + #if ETL_USING_CPP17 && !defined(ETL_VARIANT_FORCE_CPP11) //*************************************************************************** /// Call the relevant visitor by attempting each one. @@ -1651,53 +1702,6 @@ namespace etl { (attempt_operator(visitor) || ...); } - #else - //*************************************************************************** - /// Call the relevant operator. - //*************************************************************************** - template - void do_operator(TVisitor& visitor) - { - #if defined(ETL_VARIANT_CPP11_MAX_8_TYPES) - ETL_STATIC_ASSERT(sizeof...(TTypes) <= 8U, "ETL_VARIANT_CPP11_MAX_8_TYPES - Only a maximum of 8 types are allowed in this variant"); - #endif - - #if defined(ETL_VARIANT_CPP11_MAX_16_TYPES) - ETL_STATIC_ASSERT(sizeof...(TTypes) <= 16U, "ETL_VARIANT_CPP11_MAX_16_TYPES - Only a maximum of 16 types are allowed in this variant"); - #endif - - #if defined(ETL_VARIANT_CPP11_MAX_24_TYPES) - ETL_STATIC_ASSERT(sizeof...(TTypes) <= 24U, "ETL_VARIANT_CPP11_MAX_24_TYPES - Only a maximum of 24 types are allowed in this variant"); - #endif - - ETL_STATIC_ASSERT(sizeof...(TTypes) <= 32U, "A maximum of 32 types are allowed in this variant"); - - etl::private_variant::select_do_operator::do_operator(*this, visitor); - } - - //*************************************************************************** - /// Call the relevant operator. - //*************************************************************************** - template - void do_operator(TVisitor& visitor) const - { - #if defined(ETL_VARIANT_CPP11_MAX_8_TYPES) - ETL_STATIC_ASSERT(sizeof...(TTypes) <= 8U, "ETL_VARIANT_CPP11_MAX_8_TYPES - Only a maximum of 8 types are allowed in this variant"); - #endif - - #if defined(ETL_VARIANT_CPP11_MAX_16_TYPES) - ETL_STATIC_ASSERT(sizeof...(TTypes) <= 16U, "ETL_VARIANT_CPP11_MAX_16_TYPES - Only a maximum of 16 types are allowed in this variant"); - #endif - - #if defined(ETL_VARIANT_CPP11_MAX_24_TYPES) - ETL_STATIC_ASSERT(sizeof...(TTypes) <= 24U, "ETL_VARIANT_CPP11_MAX_24_TYPES - Only a maximum of 24 types are allowed in this variant"); - #endif - - ETL_STATIC_ASSERT(sizeof...(TTypes) <= 32U, "A maximum of 32 types are allowed in this variant"); - - etl::private_variant::select_do_operator::do_operator(*this, visitor); - } - #endif //*************************************************************************** /// Attempt to call a visitor. @@ -1735,6 +1739,81 @@ namespace etl } } + #else + + //*************************************************************************** + /// Call the relevant visitor. + //*************************************************************************** + template + void do_operator(TVisitor& visitor) + { + do_operator_at(visitor, etl::make_index_sequence{}); + } + + //*************************************************************************** + /// Call the relevant visitor. + //*************************************************************************** + template + void do_operator(TVisitor& visitor) const + { + do_operator_at(visitor, etl::make_index_sequence{}); + } + + //*************************************************************************** + /// Base case: exactly one index remains. + /// Check Index against this->index() to see if it's actually the match. + //*************************************************************************** + template + void do_operator_at(TVisitor& visitor, etl::index_sequence) + { + if (Index == index()) + { + visitor(etl::get(*this)); + } + } + + template + void do_operator_at(TVisitor& visitor, etl::index_sequence) const + { + if (Index == index()) + { + visitor(etl::get(*this)); + } + } + + //*************************************************************************** + /// Recursive case: check Index against this->index(), otherwise defer. + //*************************************************************************** + template + void do_operator_at(TVisitor& visitor, etl::index_sequence) + { + if (Index == index()) + { + visitor(etl::get(*this)); + } + else + { + do_operator_at(visitor, etl::index_sequence{}); + } + } + + //*************************************************************************** + /// Recursive case: check Index against this->index(), otherwise defer. + //*************************************************************************** + template + void do_operator_at(TVisitor& visitor, etl::index_sequence) const + { + if (Index == index()) + { + visitor(etl::get(*this)); + } + else + { + do_operator_at(visitor, etl::index_sequence{}); + } + } + #endif + //*************************************************************************** /// Get a reference to the stored value by index. /// For trivially destructible types, accesses the variadic_union directly. @@ -2091,8 +2170,8 @@ namespace etl //*************************************************************************** namespace private_variant { - template - static ETL_CONSTEXPR14 TRet do_visit_single(TCallable&& f, TVariant&& v, TNext&&, TVariants&&... vs); + template + static ETL_CONSTEXPR14 TReturn do_visit_single(TCallable&& f, TVariant&& v, TNext&&, TVariants&&... vs); //*************************************************************************** /// Dummy-struct used to indicate that the return type should be auto-deduced @@ -2143,8 +2222,8 @@ namespace etl using type = common_type_t >...>; }; - template