SeqAn3
3.4.0
The Modern C++ library for sequence analysis.
Toggle main menu visibility
Loading...
Searching...
No Matches
istreambuf_view.hpp
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: 2006-2025 Knut Reinert & Freie Universität Berlin
2
// SPDX-FileCopyrightText: 2016-2025 Knut Reinert & MPI für molekulare Genetik
3
// SPDX-License-Identifier: BSD-3-Clause
4
9
10
#pragma once
11
12
#include <
iosfwd
>
13
#include <
iterator
>
14
#include <ranges>
15
16
#include <
seqan3/io/stream/concept.hpp
>
17
#include <
seqan3/io/stream/detail/fast_istreambuf_iterator.hpp
>
18
19
namespace
seqan3::detail
20
{
21
22
// ============================================================================
23
// istreambuf_fn (adaptor definition)
24
// ============================================================================
25
28
struct
istreambuf_fn
29
{
36
template
<
typename
stream_
char
_t,
typename
stream_traits_t>
37
constexpr
auto
operator()(std::basic_streambuf<stream_char_t, stream_traits_t> & s)
const
38
{
39
return
std::ranges::subrange<detail::fast_istreambuf_iterator<stream_char_t, stream_traits_t>,
40
std::default_sentinel_t>{
41
detail::fast_istreambuf_iterator<stream_char_t, stream_traits_t>{s},
42
std::default_sentinel_t{}};
43
}
44
50
template
<input_stream stream_t>
51
constexpr
auto
operator()(stream_t & s)
const
52
{
53
return
this->operator()(*s.rdbuf());
54
}
55
};
56
57
}
// namespace seqan3::detail
58
59
// ============================================================================
60
// detail::istreambuf (adaptor instance definition)
61
// ============================================================================
62
63
namespace
seqan3::detail
64
{
104
inline
constexpr
auto
istreambuf = detail::istreambuf_fn{};
105
106
}
// namespace seqan3::detail
fast_istreambuf_iterator.hpp
Provides seqan3::detail::fast_istreambuf_iterator.
concept.hpp
Stream concepts.
iosfwd
iterator
Hide me
Version:
seqan3
io
views
detail
istreambuf_view.hpp
Generated on
for SeqAn3 by
1.17.0