aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2021-10-20 21:43:42 -0400
committerPatrick Palka <ppalka@redhat.com>2021-10-20 21:43:42 -0400
commit1556e447c0fee5c77ccd9bda243d5281e10e895b (patch)
tree9e3d2da3a111a26ba4ed0d8e146e81c3e539c50d
parent2d3ac6039074832978ce9bcd41ba93ef4812458f (diff)
downloadgcc-1556e447c0fee5c77ccd9bda243d5281e10e895b.zip
gcc-1556e447c0fee5c77ccd9bda243d5281e10e895b.tar.gz
gcc-1556e447c0fee5c77ccd9bda243d5281e10e895b.tar.bz2
libstdc++: Implement LWG 3595 changes to common_iterator
libstdc++-v3/ChangeLog: * include/bits/stl_iterator.h (common_iterator::__arrow_proxy): Make fully constexpr as per LWG 3595. (common_iterator::__postfix_proxy): Likewise.
-rw-r--r--libstdc++-v3/include/bits/stl_iterator.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h
index 8afd675..0090b2d 100644
--- a/libstdc++-v3/include/bits/stl_iterator.h
+++ b/libstdc++-v3/include/bits/stl_iterator.h
@@ -1821,13 +1821,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
iter_value_t<_It> _M_keep;
+ constexpr
__arrow_proxy(iter_reference_t<_It>&& __x)
: _M_keep(std::move(__x)) { }
friend class common_iterator;
public:
- const iter_value_t<_It>*
+ constexpr const iter_value_t<_It>*
operator->() const noexcept
{ return std::__addressof(_M_keep); }
};
@@ -1836,13 +1837,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
iter_value_t<_It> _M_keep;
+ constexpr
__postfix_proxy(iter_reference_t<_It>&& __x)
: _M_keep(std::forward<iter_reference_t<_It>>(__x)) { }
friend class common_iterator;
public:
- const iter_value_t<_It>&
+ constexpr const iter_value_t<_It>&
operator*() const noexcept
{ return _M_keep; }
};