52 using base_type::base_type;
54 template <std::ranges::borrowed_range Range>
56 std::convertible_to<Range, std::span<const CharT>> && !std::convertible_to<Range, std::span<CharT>>)
57 explicit basic_ispanstream(Range&& range, std::ios_base::openmode mode = std::ios_base::in)
58 :
base_type{std::span{
const_cast<CharT*
>(std::ranges::data(range)), std::ranges::size(range)}, mode} {}
60 [[nodiscard]] std::span<const typename base_type::char_type> span()
const noexcept {
61 return this->spanbuf_.span();
64 template <std::ranges::borrowed_range Range>
66 std::convertible_to<Range, std::span<const CharT>> && !std::convertible_to<Range, std::span<CharT>>)
67 void span(Range&& range)
noexcept {
68 return this->spanbuf_.span(
69 std::span{
const_cast<CharT*
>(std::ranges::data(range)), std::ranges::size(range)});