File tree Expand file tree Collapse file tree 2 files changed +5
-10
lines changed Expand file tree Collapse file tree 2 files changed +5
-10
lines changed Original file line number Diff line number Diff line change 1212#include < limits>
1313#include < map>
1414#include < memory>
15+ #include < ranges>
1516#include < span>
1617#include < sstream>
1718#include < stack>
@@ -324,11 +325,6 @@ namespace bencode {
324325
325326 namespace detail {
326327
327- template <typename T> constexpr bool is_view = false ;
328- template <typename T> constexpr bool is_view<std::basic_string_view<T>>
329- = true ;
330- template <typename T> constexpr bool is_view<std::span<T>> = true ;
331-
332328 template <typename T>
333329 concept iterable = requires (T &t) {
334330 std::begin (t);
@@ -470,8 +466,7 @@ namespace bencode {
470466 return value;
471467 }
472468
473- template <typename String, std::contiguous_iterator Iter>
474- requires is_view<String>
469+ template <std::ranges::view String, std::contiguous_iterator Iter>
475470 String decode_chars (Iter &begin, Iter end, std::size_t len) {
476471 if (std::distance (begin, end) < static_cast <std::ptrdiff_t >(len)) {
477472 begin = end;
@@ -586,7 +581,7 @@ namespace bencode {
586581
587582 template <typename Data>
588583 Data do_decode (std::istream &s, eof_behavior e, bool all) {
589- static_assert (!detail::is_view <typename Data::string>,
584+ static_assert (!std::ranges::view <typename Data::string>,
590585 " reading from stream not supported for data views" );
591586
592587 std::istreambuf_iterator<char > begin (s), end;
Original file line number Diff line number Diff line change @@ -95,7 +95,7 @@ auto decode_tests(Builder &_, Callable &&do_decode) {
9595 auto value = do_decode (data);
9696 auto str = get<typename OutType::string>(value);
9797 expect (str, equal_to (" spam" ));
98- if constexpr (bencode::detail::is_view <typename OutType::string>) {
98+ if constexpr (std::ranges::view <typename OutType::string>) {
9999 expect (&*str.begin (), within_data_memory);
100100 expect (&*str.end (), within_data_memory);
101101 }
@@ -119,7 +119,7 @@ auto decode_tests(Builder &_, Callable &&do_decode) {
119119
120120 auto str = dict.find (" spam" )->first ;
121121 expect (str, equal_to (" spam" ));
122- if constexpr (bencode::detail::is_view <typename OutType::string>) {
122+ if constexpr (std::ranges::view <typename OutType::string>) {
123123 expect (&*str.begin (), within_data_memory);
124124 expect (&*str.end (), within_data_memory);
125125 }
You can’t perform that action at this time.
0 commit comments