[73](https://github.com/PickNikRobotics/RSL/actions/runs/25425668739/job/74578302598?pr=167#step:13:474)
Running clang-tidy for 14 files out of 14 in compilation database ...
[ 1/14][18.1s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/tests/no_discard.cpp
/__w/RSL/RSL/include/rsl/no_discard.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
42076 warnings generated.
Suppressed 42077 warnings (42075 in non-user code, 2 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error
[ 2/14][28.0s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/tests/static_vector.cpp
/__w/RSL/RSL/include/rsl/static_vector.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
42333 warnings generated.
Suppressed 42377 warnings (42332 in non-user code, 45 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error
[ 3/14][38.8s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/tests/monad.cpp
/__w/RSL/RSL/include/rsl/monad.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
/__w/RSL/RSL/include/rsl/monad.hpp:169:11: error: use C++20 requires constraints instead of enable_if [modernize-use-constraints,-warnings-as-errors]
168 | template <typename T, typename Fn, typename = std::enable_if_t<rsl::is_optional<T>>,
| ~
169 | typename = std::enable_if_t<std::is_invocable_v<
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
170 | Fn, typename std::remove_cv_t<std::remove_reference_t<T>>::value_type>>>
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
171 | [[nodiscard]] constexpr auto operator|(T&& opt, Fn&& fn) {
/__w/RSL/RSL/include/rsl/monad.hpp:205:5: error: use C++20 requires constraints instead of enable_if [modernize-use-constraints,-warnings-as-errors]
205 | typename std::enable_if_t<std::is_invocable_v<Fn, T>, std::invoke_result_t<Fn, T>> {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| std::invoke_result_t<Fn, T> requires (std::is_invocable_v<Fn, T>)
72304 warnings generated.
Suppressed 72322 warnings (72301 in non-user code, 21 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings treated as errors
[ 4/14][25.9s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/tests/install/install.cpp
/__w/RSL/RSL/include/rsl/random.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
61538 warnings generated.
Suppressed 61537 warnings (61537 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error
[ 5/14][38.8s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/tests/random.cpp
/__w/RSL/RSL/include/rsl/random.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
76527 warnings generated.
Suppressed 76536 warnings (76526 in non-user code, 10 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error
[ 6/14][23.1s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/tests/static_string.cpp
/__w/RSL/RSL/include/rsl/static_string.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
41998 warnings generated.
Suppressed 42034 warnings (41997 in non-user code, 37 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error
[ 7/14][30.9s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/tests/algorithm.cpp
/__w/RSL/RSL/include/rsl/algorithm.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
46751 warnings generated.
Suppressed 46750 warnings (46750 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error
[ 8/14][19.0s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/src/parameter_validators.cpp
/__w/RSL/RSL/include/rsl/algorithm.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
/__w/RSL/RSL/include/rsl/parameter_validators.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
/__w/RSL/RSL/include/rsl/static_string.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
/__w/RSL/RSL/include/rsl/static_vector.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
53926 warnings generated.
Suppressed 53922 warnings (53922 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings treated as errors
[ 9/14][21.0s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/tests/overload.cpp
/__w/RSL/RSL/include/rsl/overload.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
42986 warnings generated.
Suppressed 42988 warnings (42985 in non-user code, 3 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error
[10/14][94.9s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/tests/parameter_validators.cpp
/__w/RSL/RSL/include/rsl/algorithm.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
/__w/RSL/RSL/include/rsl/parameter_validators.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
/__w/RSL/RSL/include/rsl/static_string.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
/__w/RSL/RSL/include/rsl/static_vector.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
63411 warnings generated.
Suppressed 63423 warnings (63407 in non-user code, 16 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings treated as errors
[11/14][27.6s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/src/random.cpp
/__w/RSL/RSL/include/rsl/random.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
/__w/RSL/RSL/src/random.cpp:33:32: error: prefer 'std::numbers::pi' to this literal, differs by '0.00e+00' [modernize-use-std-numbers,-warnings-as-errors]
1 | static constexpr auto pi = 3.1415926535897932385;
| ^~~~~~~~~~~~~~~~~~~~~
| std::numbers::pi
63099 warnings generated.
Suppressed 63097 warnings (63097 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings treated as errors
[12/14][16.0s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/tests/strong_type.cpp
/__w/RSL/RSL/include/rsl/strong_type.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
42101 warnings generated.
Suppressed 42104 warnings (42100 in non-user code, 4 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error
[13/14][19.1s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/tests/try.cpp
/__w/RSL/RSL/include/rsl/try.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
46374 warnings generated.
Suppressed 46375 warnings (46373 in non-user code, 2 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error
[14/14][18.3s] clang-tidy-21 -p=/__w/RSL/RSL/build/release /__w/RSL/RSL/tests/queue.cpp
/__w/RSL/RSL/include/rsl/queue.hpp:1:1: error: avoid 'pragma once' directive; use include guards instead [portability-avoid-pragma-once,-warnings-as-errors]
1 | #pragma once
| ^
/__w/RSL/RSL/include/rsl/queue.hpp:29:9: error: use 'std::scoped_lock' instead of 'std::lock_guard' [modernize-use-scoped-lock,-warnings-as-errors]
29 | auto const lock = std::lock_guard(mutex_);
| ^
/__w/RSL/RSL/include/rsl/queue.hpp:38:9: error: use 'std::scoped_lock' instead of 'std::lock_guard' [modernize-use-scoped-lock,-warnings-as-errors]
38 | auto const lock = std::lock_guard(mutex_);
| ^
/__w/RSL/RSL/include/rsl/queue.hpp:47:9: error: use 'std::scoped_lock' instead of 'std::lock_guard' [modernize-use-scoped-lock,-warnings-as-errors]
47 | auto const lock = std::lock_guard(mutex_);
| ^
/__w/RSL/RSL/include/rsl/queue.hpp:56:9: error: use 'std::scoped_lock' instead of 'std::lock_guard' [modernize-use-scoped-lock,-warnings-as-errors]
56 | auto const lock = std::lock_guard(mutex_);
| ^
/__w/RSL/RSL/tests/queue.cpp:92:35: error: '*' has higher precedence than '-'; add parentheses to explicitly specify the order of operations [readability-math-missing-parentheses,-warnings-as-errors]
92 | CHECK(queue.size() == thread_count * item_count - items_removed);
| ^
/__w/RSL/RSL/build/release/_deps/catch2-src/src/catch2/../catch2/catch_test_macros.hpp:132:99: note: expanded from macro 'CHECK'
132 | #define CHECK( ... ) INTERNAL_CATCH_TEST( "CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
| ^
/__w/RSL/RSL/build/release/_deps/catch2-src/src/catch2/../catch2/internal/catch_test_macro_impl.hpp:47:40: note: expanded from macro 'INTERNAL_CATCH_TEST'
47 | CATCH_INTERNAL_IGNORE_BUT_WARN(__VA_ARGS__); \
| ^
/__w/RSL/RSL/build/release/_deps/catch2-src/src/catch2/../catch2/internal/catch_compiler_capabilities.hpp:114:76: note: expanded from macro 'CATCH_INTERNAL_IGNORE_BUT_WARN'
114 | # define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__) /* NOLINT(cppcoreguidelines-pro-type-vararg, hicpp-vararg) */
| ^
50319 warnings generated.
Suppressed 50330 warnings (50311 in non-user code, 19 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings treated as errors
ninja: build stopped: subcommand failed.