diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2020-06-09 22:16:24 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2020-06-09 22:16:24 +0100 |
commit | 733167f9d5ca5b9417559b7362d91e967be95a01 (patch) | |
tree | e2d8662e0c24f771fa9c24436393bc09a9454b4e /contrib/gcc-changelog/git_commit.py | |
parent | d3647057913d3671312a79a77be02fc459d89fb6 (diff) | |
download | gcc-733167f9d5ca5b9417559b7362d91e967be95a01.zip gcc-733167f9d5ca5b9417559b7362d91e967be95a01.tar.gz gcc-733167f9d5ca5b9417559b7362d91e967be95a01.tar.bz2 |
libstdc++: Define converting assignment operator for std::move_iterator
As clarified by LWG 3265, std::move_iterator is supposed to have an
assignment operator that converts from a different specialization of
std::move_iterator, which performs an assignment. That has always been
missing from libstdc++, so assigning a different type actually performs
a converting construction, then an assignment. This is non-conforming
for the (fairly contrived) case where the converting assignment is
well-formed but the converting construction is not.
* include/bits/stl_iterator.h (move_iterator::operator=): Define.
* testsuite/24_iterators/move_iterator/dr3265.cc: New test.
Diffstat (limited to 'contrib/gcc-changelog/git_commit.py')
0 files changed, 0 insertions, 0 deletions