mirror of
https://github.com/boostorg/coroutine2.git
synced 2025-05-09 23:24:01 +00:00
Inheriting std::iterator is deprecated in C++17
Therefore replace inheritance by lifting std::iterator's members into the derived class. Signed-off-by: Daniela Engert <dani@ngrt.de>
This commit is contained in:
parent
3e074ab9dc
commit
0114d19a46
@ -68,7 +68,7 @@ public:
|
|||||||
|
|
||||||
T get() noexcept;
|
T get() noexcept;
|
||||||
|
|
||||||
class iterator : public std::iterator< std::input_iterator_tag, typename std::remove_reference< T >::type > {
|
class iterator {
|
||||||
private:
|
private:
|
||||||
pull_coroutine< T > * c_{ nullptr };
|
pull_coroutine< T > * c_{ nullptr };
|
||||||
|
|
||||||
@ -88,8 +88,14 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
typedef typename iterator::pointer pointer_t;
|
typedef std::input_iterator_tag iterator_category;
|
||||||
typedef typename iterator::reference reference_t;
|
typedef typename std::remove_reference< T >::type value_type;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
typedef value_type * pointer;
|
||||||
|
typedef value_type & reference;
|
||||||
|
|
||||||
|
typedef pointer pointer_t;
|
||||||
|
typedef reference reference_t;
|
||||||
|
|
||||||
iterator() noexcept = default;
|
iterator() noexcept = default;
|
||||||
|
|
||||||
@ -179,7 +185,7 @@ public:
|
|||||||
|
|
||||||
T & get() noexcept;
|
T & get() noexcept;
|
||||||
|
|
||||||
class iterator : public std::iterator< std::input_iterator_tag, typename std::remove_reference< T >::type > {
|
class iterator {
|
||||||
private:
|
private:
|
||||||
pull_coroutine< T & > * c_{ nullptr };
|
pull_coroutine< T & > * c_{ nullptr };
|
||||||
|
|
||||||
@ -199,8 +205,14 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
typedef typename iterator::pointer pointer_t;
|
typedef std::input_iterator_tag iterator_category;
|
||||||
typedef typename iterator::reference reference_t;
|
typedef typename std::remove_reference< T >::type value_type;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
typedef value_type * pointer;
|
||||||
|
typedef value_type & reference;
|
||||||
|
|
||||||
|
typedef pointer pointer_t;
|
||||||
|
typedef reference reference_t;
|
||||||
|
|
||||||
iterator() noexcept = default;
|
iterator() noexcept = default;
|
||||||
|
|
||||||
|
@ -66,11 +66,17 @@ public:
|
|||||||
|
|
||||||
bool operator!() const noexcept;
|
bool operator!() const noexcept;
|
||||||
|
|
||||||
class iterator : public std::iterator< std::output_iterator_tag, void, void, void, void > {
|
class iterator {
|
||||||
private:
|
private:
|
||||||
push_coroutine< T > * c_{ nullptr };
|
push_coroutine< T > * c_{ nullptr };
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
typedef std::output_iterator_tag iterator_category;
|
||||||
|
typedef void value_type;
|
||||||
|
typedef void difference_type;
|
||||||
|
typedef void pointer;
|
||||||
|
typedef void reference;
|
||||||
|
|
||||||
iterator() noexcept = default;
|
iterator() noexcept = default;
|
||||||
|
|
||||||
explicit iterator( push_coroutine< T > * c) noexcept :
|
explicit iterator( push_coroutine< T > * c) noexcept :
|
||||||
@ -143,11 +149,17 @@ public:
|
|||||||
|
|
||||||
bool operator!() const noexcept;
|
bool operator!() const noexcept;
|
||||||
|
|
||||||
class iterator : public std::iterator< std::output_iterator_tag, void, void, void, void > {
|
class iterator {
|
||||||
private:
|
private:
|
||||||
push_coroutine< T & > * c_{ nullptr };
|
push_coroutine< T & > * c_{ nullptr };
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
typedef std::output_iterator_tag iterator_category;
|
||||||
|
typedef void value_type;
|
||||||
|
typedef void difference_type;
|
||||||
|
typedef void pointer;
|
||||||
|
typedef void reference;
|
||||||
|
|
||||||
iterator() noexcept = default;
|
iterator() noexcept = default;
|
||||||
|
|
||||||
explicit iterator( push_coroutine< T & > * c) noexcept :
|
explicit iterator( push_coroutine< T & > * c) noexcept :
|
||||||
|
Loading…
x
Reference in New Issue
Block a user