This commit is contained in:
2025-03-13 18:37:52 +03:00
parent 9e70ace4b7
commit 911f82eb4d
6 changed files with 248 additions and 28 deletions

View File

@@ -8,35 +8,11 @@
#include <ranges>
#include <string_view>
#include "mcc_traits.h"
namespace mcc
{
namespace traits
{
template <typename R>
concept mcc_char_view = std::ranges::view<R> && std::same_as<std::ranges::range_value_t<R>, char>;
// input range of char/const char
template <typename R, typename CharT = char>
concept mcc_input_char_range =
std::ranges::input_range<R> && std::is_same_v<std::remove_cv_t<std::ranges::range_value_t<R>>, CharT>;
// output range of char/const char
template <typename R, typename CharT = char>
concept mcc_output_char_range =
std::ranges::output_range<R, CharT> && std::same_as<std::remove_cv_t<std::ranges::range_value_t<R>>, CharT>;
template <typename R>
concept mcc_view_or_output_char_range = mcc_char_view<R> || mcc_output_char_range<R>;
} // namespace traits
namespace utils
{