36template <
typename file_type>
39 static_assert(!std::is_const_v<file_type>,
40 "You cannot iterate over const files, because the iterator changes the file.");
59 using pointer =
typename file_type::value_type *;
91 assert(
host !=
nullptr);
92 host->read_next_record();
99 assert(
host !=
nullptr);
106 assert(
host !=
nullptr);
107 return host->record_buffer;
113 assert(
host !=
nullptr);
114 return host->record_buffer;
124 constexpr bool operator==(std::default_sentinel_t
const &)
const noexcept
126 assert(
host !=
nullptr);
131 constexpr bool operator!=(std::default_sentinel_t
const &)
const noexcept
133 assert(
host !=
nullptr);
134 return !
host->at_end;
140 return (it == std::default_sentinel);
146 return (it != std::default_sentinel);
158 assert(
host !=
nullptr);
159 return host->position_buffer;
165 assert(
host !=
nullptr);
166 host->secondary_stream->seekg(pos);
167 if (
host->secondary_stream->fail())
171 host->at_end =
false;
172 host->read_next_record();
Input iterator necessary for providing a range-like interface in input file.
Definition in_file_iterator.hpp:38
typename file_type::value_type value_type
The value type.
Definition in_file_iterator.hpp:49
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:138
void operator++(int)
Post-increment is the same as pre-increment, but returns void.
Definition in_file_iterator.hpp:97
constexpr bool operator!=(std::default_sentinel_t const &) const noexcept
Checks whether *this is not equal to the sentinel.
Definition in_file_iterator.hpp:131
typename file_type::reference const_reference
The const reference type.
Definition in_file_iterator.hpp:53
std::streampos file_position() const
Returns the current position in the file via std::streampos.
Definition in_file_iterator.hpp:156
reference operator*() noexcept
Dereference returns the currently buffered record.
Definition in_file_iterator.hpp:104
in_file_iterator & operator++()
Move to the next record in the file and return a reference to it.
Definition in_file_iterator.hpp:89
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:51
file_type * host
Pointer to file host.
Definition in_file_iterator.hpp:179
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:81
typename file_type::difference_type difference_type
The difference type. A signed integer type, usually std::ptrdiff_t.
Definition in_file_iterator.hpp:57
typename file_type::value_type * pointer
The pointer type.
Definition in_file_iterator.hpp:59
constexpr bool operator==(std::default_sentinel_t const &) const noexcept
Checks whether *this is equal to the sentinel.
Definition in_file_iterator.hpp:124
reference operator*() const noexcept
Dereference returns the currently buffered record.
Definition in_file_iterator.hpp:111
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:163
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:55
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:144
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26