Stop using deprecated std::iterator
As reported in #4615 and others, GCC 12.1 emits deprecation warnings because we use std::iterator. Replace it with the modern equivalent. Closes #4615
This commit is contained in:
parent
4c7c4a1454
commit
1529cfb2c2
|
@ -80,8 +80,14 @@ struct ParametersParser
|
||||||
// a non empty StringView value if the switch took an argument.
|
// a non empty StringView value if the switch took an argument.
|
||||||
Optional<StringView> get_switch(StringView name) const;
|
Optional<StringView> get_switch(StringView name) const;
|
||||||
|
|
||||||
struct iterator : std::iterator<std::forward_iterator_tag, String>
|
struct iterator
|
||||||
{
|
{
|
||||||
|
using difference_type = ptrdiff_t;
|
||||||
|
using value_type = String;
|
||||||
|
using pointer = String*;
|
||||||
|
using reference = String&;
|
||||||
|
using iterator_category = std::forward_iterator_tag;
|
||||||
|
|
||||||
iterator(const ParametersParser& parser, size_t index)
|
iterator(const ParametersParser& parser, size_t index)
|
||||||
: m_parser(parser), m_index(index) {}
|
: m_parser(parser), m_index(index) {}
|
||||||
|
|
||||||
|
|
|
@ -122,9 +122,14 @@ struct FilterView
|
||||||
{
|
{
|
||||||
using RangeIt = IteratorOf<Range>;
|
using RangeIt = IteratorOf<Range>;
|
||||||
|
|
||||||
struct Iterator : std::iterator<std::forward_iterator_tag,
|
struct Iterator
|
||||||
typename std::iterator_traits<RangeIt>::value_type>
|
|
||||||
{
|
{
|
||||||
|
using difference_type = ptrdiff_t;
|
||||||
|
using value_type = typename std::iterator_traits<RangeIt>::value_type;
|
||||||
|
using pointer = value_type*;
|
||||||
|
using reference = value_type&;
|
||||||
|
using iterator_category = std::forward_iterator_tag;
|
||||||
|
|
||||||
Iterator(Filter& filter, RangeIt it, RangeIt end)
|
Iterator(Filter& filter, RangeIt it, RangeIt end)
|
||||||
: m_it{std::move(it)}, m_end{std::move(end)}, m_filter{&filter}
|
: m_it{std::move(it)}, m_end{std::move(end)}, m_filter{&filter}
|
||||||
{
|
{
|
||||||
|
@ -180,9 +185,14 @@ struct EnumerateView
|
||||||
{
|
{
|
||||||
using RangeIt = IteratorOf<Range>;
|
using RangeIt = IteratorOf<Range>;
|
||||||
|
|
||||||
struct Iterator : std::iterator<std::forward_iterator_tag,
|
struct Iterator
|
||||||
typename std::iterator_traits<RangeIt>::value_type>
|
|
||||||
{
|
{
|
||||||
|
using difference_type = ptrdiff_t;
|
||||||
|
using value_type = typename std::iterator_traits<RangeIt>::value_type;
|
||||||
|
using pointer = value_type*;
|
||||||
|
using reference = value_type&;
|
||||||
|
using iterator_category = std::forward_iterator_tag;
|
||||||
|
|
||||||
Iterator(size_t index, RangeIt it)
|
Iterator(size_t index, RangeIt it)
|
||||||
: m_index{index}, m_it{std::move(it)} {}
|
: m_index{index}, m_it{std::move(it)} {}
|
||||||
|
|
||||||
|
@ -317,8 +327,14 @@ struct SplitView
|
||||||
std::pair<IteratorOf<Range>, IteratorOf<Range>>,
|
std::pair<IteratorOf<Range>, IteratorOf<Range>>,
|
||||||
ValueTypeParam>;
|
ValueTypeParam>;
|
||||||
|
|
||||||
struct Iterator : std::iterator<std::forward_iterator_tag, ValueType>
|
struct Iterator
|
||||||
{
|
{
|
||||||
|
using difference_type = ptrdiff_t;
|
||||||
|
using value_type = ValueType;
|
||||||
|
using pointer = ValueType*;
|
||||||
|
using reference = ValueType&;
|
||||||
|
using iterator_category = std::forward_iterator_tag;
|
||||||
|
|
||||||
Iterator(RangeIt pos, const RangeIt& end, Element separator, Element escaper)
|
Iterator(RangeIt pos, const RangeIt& end, Element separator, Element escaper)
|
||||||
: done{pos == end}, pos{pos}, sep{pos}, end(end), separator{std::move(separator)}, escaper{std::move(escaper)}
|
: done{pos == end}, pos{pos}, sep{pos}, end(end), separator{std::move(separator)}, escaper{std::move(escaper)}
|
||||||
{
|
{
|
||||||
|
@ -486,8 +502,14 @@ struct ConcatView
|
||||||
using ValueType = typename std::common_type_t<typename std::iterator_traits<RangeIt1>::value_type,
|
using ValueType = typename std::common_type_t<typename std::iterator_traits<RangeIt1>::value_type,
|
||||||
typename std::iterator_traits<RangeIt2>::value_type>;
|
typename std::iterator_traits<RangeIt2>::value_type>;
|
||||||
|
|
||||||
struct Iterator : std::iterator<std::forward_iterator_tag, ValueType>
|
struct Iterator
|
||||||
{
|
{
|
||||||
|
using difference_type = ptrdiff_t;
|
||||||
|
using value_type = ValueType;
|
||||||
|
using pointer = ValueType*;
|
||||||
|
using reference = ValueType&;
|
||||||
|
using iterator_category = std::forward_iterator_tag;
|
||||||
|
|
||||||
static_assert(std::is_convertible<typename std::iterator_traits<RangeIt1>::value_type, ValueType>::value, "");
|
static_assert(std::is_convertible<typename std::iterator_traits<RangeIt1>::value_type, ValueType>::value, "");
|
||||||
static_assert(std::is_convertible<typename std::iterator_traits<RangeIt2>::value_type, ValueType>::value, "");
|
static_assert(std::is_convertible<typename std::iterator_traits<RangeIt2>::value_type, ValueType>::value, "");
|
||||||
|
|
||||||
|
|
|
@ -45,8 +45,13 @@ struct MatchResults
|
||||||
bool matched = false;
|
bool matched = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct iterator : std::iterator<std::bidirectional_iterator_tag, SubMatch, size_t, SubMatch*, SubMatch>
|
struct iterator
|
||||||
{
|
{
|
||||||
|
using difference_type = size_t;
|
||||||
|
using value_type = SubMatch;
|
||||||
|
using pointer = SubMatch*;
|
||||||
|
using reference = SubMatch;
|
||||||
|
using iterator_category = std::bidirectional_iterator_tag;
|
||||||
using It = typename Vector<Iterator, MemoryDomain::Regex>::const_iterator;
|
using It = typename Vector<Iterator, MemoryDomain::Regex>::const_iterator;
|
||||||
|
|
||||||
iterator() = default;
|
iterator() = default;
|
||||||
|
|
|
@ -68,8 +68,14 @@ String expand_tabs(StringView line, ColumnCount tabstop, ColumnCount col = 0);
|
||||||
|
|
||||||
struct WrapView
|
struct WrapView
|
||||||
{
|
{
|
||||||
struct Iterator : std::iterator<std::forward_iterator_tag, StringView>
|
struct Iterator
|
||||||
{
|
{
|
||||||
|
using difference_type = ptrdiff_t;
|
||||||
|
using value_type = StringView;
|
||||||
|
using pointer = StringView*;
|
||||||
|
using reference = StringView&;
|
||||||
|
using iterator_category = std::forward_iterator_tag;
|
||||||
|
|
||||||
Iterator(StringView text, ColumnCount max_width);
|
Iterator(StringView text, ColumnCount max_width);
|
||||||
|
|
||||||
Iterator& operator++();
|
Iterator& operator++();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user