#pragma once #include #include #include #include #include namespace cpp20 { template [[nodiscard]] auto double_value(T value) -> T { (void)value; return T{}; } template [[nodiscard]] auto clamp01(T value) -> T { (void)value; return T{}; } template concept StringLike = requires(T value) { { value.size() } -> std::convertible_to; { value.data() } -> std::convertible_to; }; template [[nodiscard]] auto uppercase_copy(const T& text) -> std::string { (void)text; return {}; } [[nodiscard]] auto sum_integral(const std::vector& data) -> int; } // namespace cpp20