7 #ifndef RETDEC_FILEFORMAT_TYPES_STRINGS_CHARACTER_ITERATOR_H
8 #define RETDEC_FILEFORMAT_TYPES_STRINGS_CHARACTER_ITERATOR_H
26 template <typename It, typename = std::enable_if_t<std::is_same<typename std::iterator_traits<It>::iterator_category, std::random_access_iterator_tag>::value>>
42 std::ptrdiff_t direction = n < 0 ? -1 : 1;
49 for (std::ptrdiff_t advIdx = 0; advIdx < n; ++advIdx)
52 for (std::size_t i = 0; i <
charStep; ++i, std::advance(
itr, direction))
64 bool result = std::isprint(
static_cast<unsigned char>(*charByte));
66 for (
auto itr = paddingFirst; result &&
itr != paddingLast; ++
itr)
67 result = (*
itr ==
'\0');
86 return static_cast<char>(*itr);
198 return diff == 0 ? 1 : diff;
218 return !(*
this == rhs);
271 template <
typename It>
274 return { first, last, charStep };
287 template <
typename It>
290 return { itr, first, last, charStep };
298 template <
typename It>
299 struct iterator_traits<
retdec::fileformat::CharacterIterator<It>>
Definition: archive_wrapper.h:19