37template <
typename file_type>
40 static_assert(!std::is_const_v<file_type>,
41 "You cannot iterate over const files, because the iterator changes the file.");
60 using pointer =
typename file_type::value_type *;
92 assert(
host !=
nullptr);
93 host->read_next_record();
100 assert(
host !=
nullptr);
107 assert(
host !=
nullptr);
108 return host->record_buffer;
114 assert(
host !=
nullptr);
115 return host->record_buffer;
125 constexpr bool operator==(std::default_sentinel_t
const &)
const noexcept
127 assert(
host !=
nullptr);
132 constexpr bool operator!=(std::default_sentinel_t
const &)
const noexcept
134 assert(
host !=
nullptr);
135 return !
host->at_end;
141 return (it == std::default_sentinel);
147 return (it != std::default_sentinel);
159 assert(
host !=
nullptr);
160 return host->position_buffer;
166 assert(
host !=
nullptr);
167 host->secondary_stream->seekg(pos);
168 if (
host->secondary_stream->fail())
172 host->at_end =
false;
173 host->read_next_record();
Input iterator necessary for providing a range-like interface in input file.
Definition in_file_iterator.hpp:39
typename file_type::value_type value_type
The value type.
Definition in_file_iterator.hpp:50
constexpr in_file_iterator & operator=(in_file_iterator &&)=default
Move assignment.
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:139
void operator++(int)
Post-increment is the same as pre-increment, but returns void.
Definition in_file_iterator.hpp:98
constexpr bool operator!=(std::default_sentinel_t const &) const noexcept
Checks whether *this is not equal to the sentinel.
Definition in_file_iterator.hpp:132
typename file_type::reference const_reference
The const reference type.
Definition in_file_iterator.hpp:54
std::streampos file_position() const
Returns the current position in the file via std::streampos.
Definition in_file_iterator.hpp:157
reference operator*() noexcept
Dereference returns the currently buffered record.
Definition in_file_iterator.hpp:105
in_file_iterator & operator++()
Move to the next record in the file and return a reference to it.
Definition in_file_iterator.hpp:90
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:52
file_type * host
Pointer to file host.
Definition in_file_iterator.hpp:180
constexpr in_file_iterator & operator=(in_file_iterator const &)=default
Copy construction via assignment.
constexpr in_file_iterator(file_type &_host) noexcept
Construct with reference to host.
Definition in_file_iterator.hpp:82
typename file_type::difference_type difference_type
The difference type. A signed integer type, usually std::ptrdiff_t.
Definition in_file_iterator.hpp:58
typename file_type::value_type * pointer
The pointer type.
Definition in_file_iterator.hpp:60
constexpr bool operator==(std::default_sentinel_t const &) const noexcept
Checks whether *this is equal to the sentinel.
Definition in_file_iterator.hpp:125
reference operator*() const noexcept
Dereference returns the currently buffered record.
Definition in_file_iterator.hpp:112
in_file_iterator & seek_to(std::streampos const &pos)
Low level API. Sets the current position of the iterator to the given position, throws if at end of f...
Definition in_file_iterator.hpp:164
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:56
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:145
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26