This commit is contained in:
2024-09-11 18:20:57 +03:00
parent 56bf7abcb7
commit 8ae489f1c5
3 changed files with 101 additions and 46 deletions

View File

@@ -46,6 +46,10 @@ template <typename R>
concept adc_char_view = std::ranges::view<R> && std::same_as<std::ranges::range_value_t<R>, char>;
template <typename R>
concept adc_view_or_output_char_range = adc_char_view<R> || adc_output_char_range<R>;
template <typename R>
concept adc_range_of_view_char_range = std::ranges::range<R> && std::ranges::view<std::ranges::range_value_t<R>> &&
std::same_as<std::ranges::range_value_t<std::ranges::range_value_t<R>>, char>;
@@ -54,6 +58,10 @@ template <typename R>
concept adc_range_of_input_char_range =
std::ranges::range<R> && traits::adc_input_char_range<std::ranges::range_value_t<R>>;
template <typename R>
concept adc_range_of_view_or_output_char_range = adc_range_of_view_char_range<R> || adc_output_char_range<R>;
// deduce returned type of callable
// template <typename T>
// using adc_retval_t = std::invoke_result_t<std::remove_cvref_t<T>>;