39 template <
typename file_type>
42 static_assert(!std::is_const_v<file_type>,
43 "You cannot iterate over const files, because the iterator changes the file.");
61 using pointer =
typename file_type::value_type *;
94 assert(
host !=
nullptr);
95 host->read_next_record();
102 assert(
host !=
nullptr);
109 assert(
host !=
nullptr);
110 return host->record_buffer;
116 assert(
host !=
nullptr);
117 return host->record_buffer;
127 constexpr
bool operator==(std::default_sentinel_t
const &)
const noexcept
129 assert(
host !=
nullptr);
134 constexpr
bool operator!=(std::default_sentinel_t
const &)
const noexcept
136 assert(
host !=
nullptr);
137 return !
host->at_end;
141 constexpr
friend bool operator==(std::default_sentinel_t
const &,
144 return (it == std::default_sentinel);
148 constexpr
friend bool operator!=(std::default_sentinel_t
const &,
151 return (it != std::default_sentinel);
Input iterator necessary for providing a range-like interface in input file.
Definition: in_file_iterator.hpp:41
constexpr in_file_iterator & operator=(in_file_iterator &&)=default
Move assignment.
typename file_type::value_type value_type
The value type.
Definition: in_file_iterator.hpp:51
constexpr in_file_iterator()=default
Default constructor.
constexpr friend bool operator==(std::default_sentinel_t const &, in_file_iterator const &it) noexcept
Checks whether it is equal to the sentinel.
Definition: in_file_iterator.hpp:141
void operator++(int)
Post-increment is the same as pre-increment, but returns void.
Definition: in_file_iterator.hpp:100
in_file_iterator & operator++()
Move to the next record in the file and return a reference to it.
Definition: in_file_iterator.hpp:92
constexpr bool operator!=(std::default_sentinel_t const &) const noexcept
Checks whether *this is not equal to the sentinel.
Definition: in_file_iterator.hpp:134
typename file_type::reference const_reference
The const reference type.
Definition: in_file_iterator.hpp:55
reference operator*() noexcept
Dereference returns the currently buffered record.
Definition: in_file_iterator.hpp:107
constexpr in_file_iterator(in_file_iterator const &)=default
Copy constructor.
~in_file_iterator()=default
Use default deconstructor.
typename file_type::reference reference
The reference type.
Definition: in_file_iterator.hpp:53
file_type * host
Pointer to file host.
Definition: in_file_iterator.hpp:157
constexpr in_file_iterator(file_type &_host) noexcept
Construct with reference to host.
Definition: in_file_iterator.hpp:83
typename file_type::difference_type difference_type
The difference type. A signed integer type, usually std::ptrdiff_t.
Definition: in_file_iterator.hpp:59
typename file_type::value_type * pointer
The pointer type.
Definition: in_file_iterator.hpp:61
constexpr bool operator==(std::default_sentinel_t const &) const noexcept
Checks whether *this is equal to the sentinel.
Definition: in_file_iterator.hpp:127
constexpr in_file_iterator & operator=(in_file_iterator const &)=default
Copy construction via assignment.
reference operator*() const noexcept
Dereference returns the currently buffered record.
Definition: in_file_iterator.hpp:114
constexpr in_file_iterator(in_file_iterator &&)=default
Move constructor.
typename file_type::size_type size_type
The size type.
Definition: in_file_iterator.hpp:57
constexpr friend bool operator!=(std::default_sentinel_t const &, in_file_iterator const &it) noexcept
Checks whether it is not equal to the sentinel.
Definition: in_file_iterator.hpp:148
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Adaptations of concepts from the Ranges TS.