23 lines
576 B
C++
23 lines
576 B
C++
#pragma once
|
|
|
|
#include <algorithm>
|
|
#include <array>
|
|
|
|
namespace cpp26 {
|
|
|
|
[[nodiscard]] constexpr auto compile_time_factorial(int n) -> long long {
|
|
auto result = 1LL;
|
|
for (auto i = 2; i <= n; ++i) {
|
|
result *= i;
|
|
}
|
|
return result;
|
|
}
|
|
[[nodiscard]] constexpr auto compile_time_sum(std::array<int, 5> values) -> int {
|
|
return std::ranges::fold_left(values, 0, std::plus{});
|
|
}
|
|
[[nodiscard]] constexpr auto is_sorted(const std::array<int, 5> &values) -> bool {
|
|
return std::ranges::is_sorted(values); // also a constexpr function
|
|
|
|
}
|
|
|
|
} // namespace cpp26
|