Topic: std::remove_set
Author: "'Vlad from Moscow' via ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Date: Mon, 4 Sep 2017 11:32:26 -0700 (PDT)
Raw View
------=_Part_2339_333852172.1504549946826
Content-Type: multipart/alternative;
boundary="----=_Part_2340_432766762.1504549946826"
------=_Part_2340_432766762.1504549946826
Content-Type: text/plain; charset="UTF-8"
I do not remember whether I already raised this question.
So let's I'll suggest one more algorithm for the family of removing
algorithms.
template <class ForwardIterator, class InputIterator>
ForwardIterator remove_set(ForwardIterator first1, ForwardIterator last1,
InputIterator first2, InputIterator last2);
template <class ForwardIterator, class InputIterator, class Compare>
ForwardIterator remove_set(ForwardIterator first1, ForwardIterator last1,
InputIterator first2, InputIterator last2,
Compare comp);
These algorithms are used for sequential containers that have ordered data.
They remove all elements from the ordered range [first1, last1) that are
present in the ordered range [first2, end2).
For example
int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int b[] = { 0, 2, 4, 6, 8 };
auto last = remove_set(std::begin(a), std::end(a),
std::begin(b), std::end(b));
for (auto first = std::begin(a); first != last; ++first)
{
std::cout << *first << ' ';
}
std::cout << std::endl;
The output of this code snippet is
1 3 5 7 9
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/8834267b-0fed-4d31-8508-4e870498a47c%40isocpp.org.
------=_Part_2340_432766762.1504549946826
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>I do not remember whether I already raised this quest=
ion. </div><div><br></div><div>So let's I'll suggest one more algor=
ithm for the family of removing algorithms.</div><div><br></div><div>templa=
te <class ForwardIterator, class InputIterator><br>ForwardIterator re=
move_set(ForwardIterator first1, ForwardIterator last1,<br>=C2=A0InputItera=
tor first2, InputIterator last2);</div><div><br></div><div>template <cla=
ss ForwardIterator, class InputIterator, class Compare><br>ForwardIterat=
or remove_set(ForwardIterator first1, ForwardIterator last1,<br>=C2=A0Input=
Iterator first2, InputIterator last2,<br>=C2=A0Compare comp);</div><div><br=
></div><div>These algorithms are used for sequential containers that have o=
rdered data. They remove all elements from the ordered range [first1, last1=
) that are present in the ordered range [first2, end2).</div><div><br></div=
><div>For example</div><div><br></div><div class=3D"prettyprint" style=3D"b=
order: 1px solid rgb(187, 187, 187); word-wrap: break-word; background-colo=
r: rgb(250, 250, 250);"><code class=3D"prettyprint"><div class=3D"subpretty=
print"><span class=3D"styled-by-prettify" style=3D"color: #000;">=C2=A0 </s=
pan><span class=3D"styled-by-prettify" style=3D"color: #008;">int</span><sp=
an class=3D"styled-by-prettify" style=3D"color: #000;"> a</span><span class=
=3D"styled-by-prettify" style=3D"color: #660;">[]</span><span class=3D"styl=
ed-by-prettify" style=3D"color: #000;"> </span><span class=3D"styled-by-pre=
ttify" style=3D"color: #660;">=3D</span><span class=3D"styled-by-prettify" =
style=3D"color: #000;"> </span><span class=3D"styled-by-prettify" style=3D"=
color: #660;">{</span><span class=3D"styled-by-prettify" style=3D"color: #0=
00;"> </span><span class=3D"styled-by-prettify" style=3D"color: #066;">0</s=
pan><span class=3D"styled-by-prettify" style=3D"color: #660;">,</span><span=
class=3D"styled-by-prettify" style=3D"color: #000;"> </span><span class=3D=
"styled-by-prettify" style=3D"color: #066;">1</span><span class=3D"styled-b=
y-prettify" style=3D"color: #660;">,</span><span class=3D"styled-by-prettif=
y" style=3D"color: #000;"> </span><span class=3D"styled-by-prettify" style=
=3D"color: #066;">2</span><span class=3D"styled-by-prettify" style=3D"color=
: #660;">,</span><span class=3D"styled-by-prettify" style=3D"color: #000;">=
</span><span class=3D"styled-by-prettify" style=3D"color: #066;">3</span><=
span class=3D"styled-by-prettify" style=3D"color: #660;">,</span><span clas=
s=3D"styled-by-prettify" style=3D"color: #000;"> </span><span class=3D"styl=
ed-by-prettify" style=3D"color: #066;">4</span><span class=3D"styled-by-pre=
ttify" style=3D"color: #660;">,</span><span class=3D"styled-by-prettify" st=
yle=3D"color: #000;"> </span><span class=3D"styled-by-prettify" style=3D"co=
lor: #066;">5</span><span class=3D"styled-by-prettify" style=3D"color: #660=
;">,</span><span class=3D"styled-by-prettify" style=3D"color: #000;"> </spa=
n><span class=3D"styled-by-prettify" style=3D"color: #066;">6</span><span c=
lass=3D"styled-by-prettify" style=3D"color: #660;">,</span><span class=3D"s=
tyled-by-prettify" style=3D"color: #000;"> </span><span class=3D"styled-by-=
prettify" style=3D"color: #066;">7</span><span class=3D"styled-by-prettify"=
style=3D"color: #660;">,</span><span class=3D"styled-by-prettify" style=3D=
"color: #000;"> </span><span class=3D"styled-by-prettify" style=3D"color: #=
066;">8</span><span class=3D"styled-by-prettify" style=3D"color: #660;">,</=
span><span class=3D"styled-by-prettify" style=3D"color: #000;"> </span><spa=
n class=3D"styled-by-prettify" style=3D"color: #066;">9</span><span class=
=3D"styled-by-prettify" style=3D"color: #000;"> </span><span class=3D"style=
d-by-prettify" style=3D"color: #660;">};</span><span class=3D"styled-by-pre=
ttify" style=3D"color: #000;"><br>=C2=A0 </span><span class=3D"styled-by-pr=
ettify" style=3D"color: #008;">int</span><span class=3D"styled-by-prettify"=
style=3D"color: #000;"> b</span><span class=3D"styled-by-prettify" style=
=3D"color: #660;">[]</span><span class=3D"styled-by-prettify" style=3D"colo=
r: #000;"> </span><span class=3D"styled-by-prettify" style=3D"color: #660;"=
>=3D</span><span class=3D"styled-by-prettify" style=3D"color: #000;"> </spa=
n><span class=3D"styled-by-prettify" style=3D"color: #660;">{</span><span c=
lass=3D"styled-by-prettify" style=3D"color: #000;"> </span><span class=3D"s=
tyled-by-prettify" style=3D"color: #066;">0</span><span class=3D"styled-by-=
prettify" style=3D"color: #660;">,</span><span class=3D"styled-by-prettify"=
style=3D"color: #000;"> </span><span class=3D"styled-by-prettify" style=3D=
"color: #066;">2</span><span class=3D"styled-by-prettify" style=3D"color: #=
660;">,</span><span class=3D"styled-by-prettify" style=3D"color: #000;"> </=
span><span class=3D"styled-by-prettify" style=3D"color: #066;">4</span><spa=
n class=3D"styled-by-prettify" style=3D"color: #660;">,</span><span class=
=3D"styled-by-prettify" style=3D"color: #000;"> </span><span class=3D"style=
d-by-prettify" style=3D"color: #066;">6</span><span class=3D"styled-by-pret=
tify" style=3D"color: #660;">,</span><span class=3D"styled-by-prettify" sty=
le=3D"color: #000;"> </span><span class=3D"styled-by-prettify" style=3D"col=
or: #066;">8</span><span class=3D"styled-by-prettify" style=3D"color: #000;=
"> </span><span class=3D"styled-by-prettify" style=3D"color: #660;">};</spa=
n><span class=3D"styled-by-prettify" style=3D"color: #000;"><br>=C2=A0 </sp=
an><span class=3D"styled-by-prettify" style=3D"color: #008;">auto</span><sp=
an class=3D"styled-by-prettify" style=3D"color: #000;"> </span><span class=
=3D"styled-by-prettify" style=3D"color: #008;">last</span><span class=3D"st=
yled-by-prettify" style=3D"color: #000;"> </span><span class=3D"styled-by-p=
rettify" style=3D"color: #660;">=3D</span><span class=3D"styled-by-prettify=
" style=3D"color: #000;"> remove_set</span><span class=3D"styled-by-prettif=
y" style=3D"color: #660;">(</span><span class=3D"styled-by-prettify" style=
=3D"color: #000;">std</span><span class=3D"styled-by-prettify" style=3D"col=
or: #660;">::</span><span class=3D"styled-by-prettify" style=3D"color: #008=
;">begin</span><span class=3D"styled-by-prettify" style=3D"color: #660;">(<=
/span><span class=3D"styled-by-prettify" style=3D"color: #000;">a</span><sp=
an class=3D"styled-by-prettify" style=3D"color: #660;">),</span><span class=
=3D"styled-by-prettify" style=3D"color: #000;"> std</span><span class=3D"st=
yled-by-prettify" style=3D"color: #660;">::</span><span class=3D"styled-by-=
prettify" style=3D"color: #008;">end</span><span class=3D"styled-by-prettif=
y" style=3D"color: #660;">(</span><span class=3D"styled-by-prettify" style=
=3D"color: #000;">a</span><span class=3D"styled-by-prettify" style=3D"color=
: #660;">),</span><span class=3D"styled-by-prettify" style=3D"color: #000;"=
><br>=C2=A0 =C2=A0std</span><span class=3D"styled-by-prettify" style=3D"col=
or: #660;">::</span><span class=3D"styled-by-prettify" style=3D"color: #008=
;">begin</span><span class=3D"styled-by-prettify" style=3D"color: #660;">(<=
/span><span class=3D"styled-by-prettify" style=3D"color: #000;">b</span><sp=
an class=3D"styled-by-prettify" style=3D"color: #660;">),</span><span class=
=3D"styled-by-prettify" style=3D"color: #000;"> std</span><span class=3D"st=
yled-by-prettify" style=3D"color: #660;">::</span><span class=3D"styled-by-=
prettify" style=3D"color: #008;">end</span><span class=3D"styled-by-prettif=
y" style=3D"color: #660;">(</span><span class=3D"styled-by-prettify" style=
=3D"color: #000;">b</span><span class=3D"styled-by-prettify" style=3D"color=
: #660;">));</span><span class=3D"styled-by-prettify" style=3D"color: #000;=
"><br>=C2=A0 </span><span class=3D"styled-by-prettify" style=3D"color: #008=
;">for</span><span class=3D"styled-by-prettify" style=3D"color: #000;"> </s=
pan><span class=3D"styled-by-prettify" style=3D"color: #660;">(</span><span=
class=3D"styled-by-prettify" style=3D"color: #008;">auto</span><span class=
=3D"styled-by-prettify" style=3D"color: #000;"> first </span><span class=3D=
"styled-by-prettify" style=3D"color: #660;">=3D</span><span class=3D"styled=
-by-prettify" style=3D"color: #000;"> std</span><span class=3D"styled-by-pr=
ettify" style=3D"color: #660;">::</span><span class=3D"styled-by-prettify" =
style=3D"color: #008;">begin</span><span class=3D"styled-by-prettify" style=
=3D"color: #660;">(</span><span class=3D"styled-by-prettify" style=3D"color=
: #000;">a</span><span class=3D"styled-by-prettify" style=3D"color: #660;">=
);</span><span class=3D"styled-by-prettify" style=3D"color: #000;"> first <=
/span><span class=3D"styled-by-prettify" style=3D"color: #660;">!=3D</span>=
<span class=3D"styled-by-prettify" style=3D"color: #000;"> </span><span cla=
ss=3D"styled-by-prettify" style=3D"color: #008;">last</span><span class=3D"=
styled-by-prettify" style=3D"color: #660;">;</span><span class=3D"styled-by=
-prettify" style=3D"color: #000;"> </span><span class=3D"styled-by-prettify=
" style=3D"color: #660;">++</span><span class=3D"styled-by-prettify" style=
=3D"color: #000;">first</span><span class=3D"styled-by-prettify" style=3D"c=
olor: #660;">)</span><span class=3D"styled-by-prettify" style=3D"color: #00=
0;"><br>=C2=A0 </span><span class=3D"styled-by-prettify" style=3D"color: #6=
60;">{</span><span class=3D"styled-by-prettify" style=3D"color: #000;"><br>=
=C2=A0 =C2=A0std</span><span class=3D"styled-by-prettify" style=3D"color: #=
660;">::</span><span class=3D"styled-by-prettify" style=3D"color: #000;">co=
ut </span><span class=3D"styled-by-prettify" style=3D"color: #660;"><<=
;</span><span class=3D"styled-by-prettify" style=3D"color: #000;"> </span><=
span class=3D"styled-by-prettify" style=3D"color: #660;">*</span><span clas=
s=3D"styled-by-prettify" style=3D"color: #000;">first </span><span class=3D=
"styled-by-prettify" style=3D"color: #660;"><<</span><span class=3D"s=
tyled-by-prettify" style=3D"color: #000;"> </span><span class=3D"styled-by-=
prettify" style=3D"color: #080;">' '</span><span class=3D"styled-by=
-prettify" style=3D"color: #660;">;</span><span class=3D"styled-by-prettify=
" style=3D"color: #000;"><br>=C2=A0 </span><span class=3D"styled-by-prettif=
y" style=3D"color: #660;">}</span><span class=3D"styled-by-prettify" style=
=3D"color: #000;"><br>=C2=A0 std</span><span class=3D"styled-by-prettify" s=
tyle=3D"color: #660;">::</span><span class=3D"styled-by-prettify" style=3D"=
color: #000;">cout </span><span class=3D"styled-by-prettify" style=3D"color=
: #660;"><<</span><span class=3D"styled-by-prettify" style=3D"color: =
#000;"> std</span><span class=3D"styled-by-prettify" style=3D"color: #660;"=
>::</span><span class=3D"styled-by-prettify" style=3D"color: #000;">endl</s=
pan><span class=3D"styled-by-prettify" style=3D"color: #660;">;</span><span=
class=3D"styled-by-prettify" style=3D"color: #000;"><br><br></span></div><=
/code></div><br><div><br></div><div>The output of this code snippet is</div=
><div><br></div><div>1 3 5 7 9</div><div><br><br></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/8834267b-0fed-4d31-8508-4e870498a47c%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/8834267b-0fed-4d31-8508-4e870498a47c=
%40isocpp.org</a>.<br />
------=_Part_2340_432766762.1504549946826--
------=_Part_2339_333852172.1504549946826--
.
Author: =?UTF-8?Q?Jonathan_M=c3=bcller?= <jonathanmueller.dev@gmail.com>
Date: Mon, 4 Sep 2017 20:45:04 +0200
Raw View
On 04.09.2017 20:32, 'Vlad from Moscow' via ISO C++ Standard - Future
Proposals wrote:
>
> These algorithms are used for sequential containers that have ordered
> data. They remove all elements from the ordered range [first1, last1)
> that are present in the ordered range [first2, end2).
>
There's http://en.cppreference.com/w/cpp/algorithm/set_difference but it
doesn't work in place.
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/3be3263b-8b97-cd80-4ad2-2d58080eac0a%40gmail.com.
.
Author: "'Vlad from Moscow' via ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Date: Tue, 5 Sep 2017 03:01:57 -0700 (PDT)
Raw View
------=_Part_661_1557134396.1504605717651
Content-Type: multipart/alternative;
boundary="----=_Part_662_880686319.1504605717651"
------=_Part_662_880686319.1504605717651
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
=D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =D1=
=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:52:41 UTC+3 =
=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Jo=
nathan=20
M=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> On 04.09.2017 20:32, 'Vlad from Moscow' via ISO C++ Standard - Future=20
> Proposals wrote:=20
> >=20
> > These algorithms are used for sequential containers that have ordered=
=20
> > data. They remove all elements from the ordered range [first1, last1)=
=20
> > that are present in the ordered range [first2, end2).=20
> >=20
>
> There's http://en.cppreference.com/w/cpp/algorithm/set_difference but it=
=20
> doesn't work in place.=20
>
There are the following pairs of algorithms
std::remove - std::remove_copy
and
std::remove_if - std::remove_copy_if
It will be logical consistent to have also the following pair
std::remove_set - std::set_difference=20
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/1499ef2a-aad3-4b28-8368-6d94ba432b04%40isocpp.or=
g.
------=_Part_662_880686319.1504605717651
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">=D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=
=B8=D0=BA, 4 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3.,=
21:52:41 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=
=B5=D0=BB=D1=8C Jonathan M=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=
=D0=BB:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.=
8ex;border-left: 1px #ccc solid;padding-left: 1ex;">On 04.09.2017 20:32, &#=
39;Vlad from Moscow' via ISO C++ Standard - Future=20
<br>Proposals wrote:
<br>>=20
<br>> These algorithms are used for sequential containers that have orde=
red=20
<br>> data. They remove all elements from the ordered range [first1, las=
t1)=20
<br>> that are present in the ordered range [first2, end2).
<br>>=20
<br>
<br>There's <a onmousedown=3D"this.href=3D'http://www.google.com/ur=
l?q\x3dhttp%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2Falgorithm%2Fset_differe=
nce\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGyBdLYvWWIixpe6yyqSKRjlmtLRg=
9;;return true;" onclick=3D"this.href=3D'http://www.google.com/url?q\x3=
dhttp%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2Falgorithm%2Fset_difference\x2=
6sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGyBdLYvWWIixpe6yyqSKRjlmtLRg';ret=
urn true;" href=3D"http://en.cppreference.com/w/cpp/algorithm/set_differenc=
e" target=3D"_blank" rel=3D"nofollow">http://en.cppreference.com/w/<wbr>cpp=
/algorithm/set_difference</a> but it=20
<br>doesn't work in place.
<br></blockquote><div><br></div><div>There are the following pairs of algor=
ithms</div><div><br></div><div>std::remove - std::remove_copy</div><div><br=
></div><div>and</div><div><br></div><div>std::remove_if - std::remove_copy_=
if</div><div><br></div><div>It will be logical consistent to have also the =
following pair</div><div><br></div><div>std::remove_set - std::set_differen=
ce=C2=A0</div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aad3-4b28-8368-6d94ba432b04%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aad3-4b28-8368-6d94ba432b04=
%40isocpp.org</a>.<br />
------=_Part_662_880686319.1504605717651--
------=_Part_661_1557134396.1504605717651--
.
Author: =?UTF-8?Q?Micha=C5=82_Dominiak?= <griwes@griwes.info>
Date: Tue, 05 Sep 2017 10:35:19 +0000
Raw View
--089e0825039cae1df205586eca7c
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
It'd be confusing to use the word "set" in the name of this function,
which, due to its in-place-ness wouldn't work on set iterators.
On Tue, Sep 5, 2017 at 12:01 PM 'Vlad from Moscow' via ISO C++ Standard -
Future Proposals <std-proposals@isocpp.org> wrote:
> =D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =D1=
=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:52:41 UTC+3 =
=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Jo=
nathan
> M=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
>> On 04.09.2017 20:32, 'Vlad from Moscow' via ISO C++ Standard - Future
>> Proposals wrote:
>> >
>> > These algorithms are used for sequential containers that have ordered
>> > data. They remove all elements from the ordered range [first1, last1)
>> > that are present in the ordered range [first2, end2).
>> >
>>
>> There's http://en.cppreference.com/w/cpp/algorithm/set_difference but it
>> doesn't work in place.
>>
>
> There are the following pairs of algorithms
>
> std::remove - std::remove_copy
>
> and
>
> std::remove_if - std::remove_copy_if
>
> It will be logical consistent to have also the following pair
>
> std::remove_set - std::set_difference
>
> --
> You received this message because you are subscribed to the Google Groups
> "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> To view this discussion on the web visit
> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aad=
3-4b28-8368-6d94ba432b04%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aa=
d3-4b28-8368-6d94ba432b04%40isocpp.org?utm_medium=3Demail&utm_source=3Dfoot=
er>
> .
>
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/CAPCFJdQp23s_RjxvPnRxw4MrCVn5QLiCZijioi3-wXg5cnc=
F1g%40mail.gmail.com.
--089e0825039cae1df205586eca7c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">It'd be confusing to use the word "set" in t=
he name of this function, which, due to its in-place-ness wouldn't work=
on set iterators.</div><br><div class=3D"gmail_quote"><div dir=3D"ltr">On =
Tue, Sep 5, 2017 at 12:01 PM 'Vlad from Moscow' via ISO C++ Standar=
d - Future Proposals <<a href=3D"mailto:std-proposals@isocpp.org">std-pr=
oposals@isocpp.org</a>> wrote:<br></div><blockquote class=3D"gmail_quote=
" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><=
div dir=3D"ltr">=D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=
=B8=D0=BA, 4 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3.,=
21:52:41 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=
=B5=D0=BB=D1=8C Jonathan M=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=
=D0=BB:</div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">On 04=
..09.2017 20:32, 'Vlad from Moscow' via ISO C++ Standard - Future=20
<br>Proposals wrote:
<br>>=20
<br>> These algorithms are used for sequential containers that have orde=
red=20
<br>> data. They remove all elements from the ordered range [first1, las=
t1)=20
<br>> that are present in the ordered range [first2, end2).
<br>>=20
<br>
<br>There's <a href=3D"http://en.cppreference.com/w/cpp/algorithm/set_d=
ifference" rel=3D"nofollow" target=3D"_blank">http://en.cppreference.com/w/=
cpp/algorithm/set_difference</a> but it=20
<br>doesn't work in place.
<br></blockquote><div><br></div></div><div dir=3D"ltr"><div>There are the f=
ollowing pairs of algorithms</div><div><br></div><div>std::remove - std::re=
move_copy</div><div><br></div><div>and</div><div><br></div><div>std::remove=
_if - std::remove_copy_if</div><div><br></div><div>It will be logical consi=
stent to have also the following pair</div><div><br></div><div>std::remove_=
set - std::set_difference=C2=A0</div></div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_=
blank">std-proposals+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">std-proposals@isocpp.org</a>.<br>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aad3-4b28-8368-6d94ba432b04%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aad3-=
4b28-8368-6d94ba432b04%40isocpp.org</a>.<br>
</blockquote></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAPCFJdQp23s_RjxvPnRxw4MrCVn5QLiCZiji=
oi3-wXg5cncF1g%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAPCFJdQp23s_Rjxv=
PnRxw4MrCVn5QLiCZijioi3-wXg5cncF1g%40mail.gmail.com</a>.<br />
--089e0825039cae1df205586eca7c--
.
Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
Date: Tue, 5 Sep 2017 09:10:19 -0700 (PDT)
Raw View
------=_Part_1038_791098901.1504627819452
Content-Type: multipart/alternative;
boundary="----=_Part_1039_1172349210.1504627819452"
------=_Part_1039_1172349210.1504627819452
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Monday, September 4, 2017 at 11:52:41 AM UTC-7, Jonathan M=C3=BCller wro=
te:
>
> On 04.09.2017 20:32, 'Vlad from Moscow' via ISO C++ Standard - Future=20
> Proposals wrote:=20
> >=20
> > These algorithms are used for sequential containers that have ordered=
=20
> > data. They remove all elements from the ordered range [first1, last1)=
=20
> > that are present in the ordered range [first2, end2).=20
> >=20
>
> There's http://en.cppreference.com/w/cpp/algorithm/set_difference but it=
=20
> doesn't work in place.=20
>
Yes it does. Vlad, I think we're done here. ;)
https://wandbox.org/permlink/xtPnNUHSLNJTf77r
=E2=80=93Arthur
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/cb419db1-7f03-4e0d-a18e-689e54a6fa73%40isocpp.or=
g.
------=_Part_1039_1172349210.1504627819452
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Monday, September 4, 2017 at 11:52:41 AM UTC-7, Jonatha=
n M=C3=BCller wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;ma=
rgin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">On 04.09.2=
017 20:32, 'Vlad from Moscow' via ISO C++ Standard - Future=20
<br>Proposals wrote:
<br>>=20
<br>> These algorithms are used for sequential containers that have orde=
red=20
<br>> data. They remove all elements from the ordered range [first1, las=
t1)=20
<br>> that are present in the ordered range [first2, end2).
<br>>=20
<br>
<br>There's <a href=3D"http://en.cppreference.com/w/cpp/algorithm/set_d=
ifference" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"this.href=3D&#=
39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fen.cppreference.com%2Fw%2Fcp=
p%2Falgorithm%2Fset_difference\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGyBd=
LYvWWIixpe6yyqSKRjlmtLRg';return true;" onclick=3D"this.href=3D'htt=
p://www.google.com/url?q\x3dhttp%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2Fal=
gorithm%2Fset_difference\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGyBdLYvWWI=
ixpe6yyqSKRjlmtLRg';return true;">http://en.cppreference.com/w/<wbr>cpp=
/algorithm/set_difference</a> but it=20
<br>doesn't work in place.
<br></blockquote><div><br></div><div>Yes it does. Vlad, I think we're d=
one here. ;)</div><div><br></div><div><a href=3D"https://wandbox.org/permli=
nk/xtPnNUHSLNJTf77r">https://wandbox.org/permlink/xtPnNUHSLNJTf77r</a></div=
><div><br></div><div>=E2=80=93Arthur</div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/cb419db1-7f03-4e0d-a18e-689e54a6fa73%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/cb419db1-7f03-4e0d-a18e-689e54a6fa73=
%40isocpp.org</a>.<br />
------=_Part_1039_1172349210.1504627819452--
------=_Part_1038_791098901.1504627819452--
.
Author: Barry Revzin <barry.revzin@gmail.com>
Date: Tue, 5 Sep 2017 09:44:28 -0700 (PDT)
Raw View
------=_Part_1140_1181807666.1504629868819
Content-Type: multipart/alternative;
boundary="----=_Part_1141_924900659.1504629868819"
------=_Part_1141_924900659.1504629868819
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
>
> There's http://en.cppreference.com/w/cpp/algorithm/set_difference but it=
=20
>> doesn't work in place.=20
>>
>
> Yes it does. Vlad, I think we're done here. ;)
>
> https://wandbox.org/permlink/xtPnNUHSLNJTf77r
>
> =E2=80=93Arthur
>
No, it doesn't: http://eel.is/c++draft/set.difference#1=20
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/bd186fdb-e3de-461b-81b8-8124000ec4f7%40isocpp.or=
g.
------=_Part_1141_924900659.1504629868819
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;bor=
der-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #c=
cc solid;padding-left:1ex">There's <a href=3D"http://en.cppreference.co=
m/w/cpp/algorithm/set_difference" rel=3D"nofollow" target=3D"_blank" onmous=
edown=3D"this.href=3D'http://www.google.com/url?q\x3dhttp%3A%2F%2Fen.cp=
preference.com%2Fw%2Fcpp%2Falgorithm%2Fset_difference\x26sa\x3dD\x26sntz\x3=
d1\x26usg\x3dAFQjCNGyBdLYvWWIixpe6yyqSKRjlmtLRg';return true;" onclick=
=3D"this.href=3D'http://www.google.com/url?q\x3dhttp%3A%2F%2Fen.cpprefe=
rence.com%2Fw%2Fcpp%2Falgorithm%2Fset_difference\x26sa\x3dD\x26sntz\x3d1\x2=
6usg\x3dAFQjCNGyBdLYvWWIixpe6yyqSKRjlmtLRg';return true;">http://en.cpp=
reference.com/w/<wbr>cpp/algorithm/set_difference</a> but it=20
<br>doesn't work in place.
<br></blockquote><div><br></div><div>Yes it does. Vlad, I think we're d=
one here. ;)</div><div><br></div><div><a href=3D"https://wandbox.org/permli=
nk/xtPnNUHSLNJTf77r" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"this=
..href=3D'https://www.google.com/url?q\x3dhttps%3A%2F%2Fwandbox.org%2Fpe=
rmlink%2FxtPnNUHSLNJTf77r\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNElwOH9mK7=
PvSKhsIUYJX0LMfJ0eg';return true;" onclick=3D"this.href=3D'https://=
www.google.com/url?q\x3dhttps%3A%2F%2Fwandbox.org%2Fpermlink%2FxtPnNUHSLNJT=
f77r\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNElwOH9mK7PvSKhsIUYJX0LMfJ0eg&#=
39;;return true;">https://wandbox.org/permlink/<wbr>xtPnNUHSLNJTf77r</a></d=
iv><div><br></div><div>=E2=80=93Arthur</div></div></blockquote><div><br></d=
iv><div>No, it doesn't: http://eel.is/c++draft/set.difference#1=C2=A0</=
div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/bd186fdb-e3de-461b-81b8-8124000ec4f7%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/bd186fdb-e3de-461b-81b8-8124000ec4f7=
%40isocpp.org</a>.<br />
------=_Part_1141_924900659.1504629868819--
------=_Part_1140_1181807666.1504629868819--
.
Author: "Arthur O'Dwyer" <arthur.j.odwyer@gmail.com>
Date: Tue, 5 Sep 2017 10:21:50 -0700
Raw View
--94eb2c1aed7483532f0558747624
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Tue, Sep 5, 2017 at 9:44 AM, Barry Revzin <barry.revzin@gmail.com> wrote=
:
> There's http://en.cppreference.com/w/cpp/algorithm/set_difference but it
>>> doesn't work in place.
>>>
>>
>> Yes it does. Vlad, I think we're done here. ;)
>>
>> https://wandbox.org/permlink/xtPnNUHSLNJTf77r
>>
>> =E2=80=93Arthur
>>
>
> No, it doesn't: http://eel.is/c++draft/set.difference#1
>
Oh. I'd perhaps consider that a defect in the wording, given that there's
no sane way to implement set_difference that would require that, and no
vendor currently implements it in anything but the obvious way.
Compare to http://eel.is/c++draft/alg.copy , which has no such requirement
listed.
=E2=80=93Arthur
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/CADvuK0Jnvru5%2B%3D1E1-AuAsmL7arSjdVgvRtTZ1ug1hP=
3674D9A%40mail.gmail.com.
--94eb2c1aed7483532f0558747624
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Tue, Sep 5, 2017 at 9:44 AM, Barry Revzin <span dir=3D"=
ltr"><<a href=3D"mailto:barry.revzin@gmail.com" target=3D"_blank">barry.=
revzin@gmail.com</a>></span> wrote:<br><div class=3D"gmail_extra"><div c=
lass=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0px =
0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);bord=
er-left-style:solid;padding-left:1ex"><span class=3D"gmail-"><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px=
;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1e=
x"><div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);borde=
r-left-style:solid;padding-left:1ex">There's <a href=3D"http://en.cppre=
ference.com/w/cpp/algorithm/set_difference" rel=3D"nofollow" target=3D"_bla=
nk">http://en.cppreference.com/w/c<wbr>pp/algorithm/set_difference</a> but =
it=20
<br>doesn't work in place.
<br></blockquote><div><br></div><div>Yes it does. Vlad, I think we're d=
one here. ;)</div><div><br></div><div><a href=3D"https://wandbox.org/permli=
nk/xtPnNUHSLNJTf77r" rel=3D"nofollow" target=3D"_blank">https://wandbox.org=
/permlink/x<wbr>tPnNUHSLNJTf77r</a></div><div><br></div><div>=E2=80=93Arthu=
r</div></div></blockquote><div><br></div></span><div>No, it doesn't: <a=
href=3D"http://eel.is/c++draft/set.difference#1" target=3D"_blank">http://=
eel.is/c++draft/set.<wbr>difference#1</a>=C2=A0</div></blockquote><div><br>=
</div><div>Oh. I'd perhaps consider that a defect in the wording, given=
that there's no sane way to implement set_difference that would requir=
e that, and no vendor currently implements it in anything but the obvious w=
ay.</div><div>Compare to=C2=A0<a href=3D"http://eel.is/c++draft/alg.copy">h=
ttp://eel.is/c++draft/alg.copy</a> , which has no such requirement listed.<=
/div><div><br></div><div>=E2=80=93Arthur</div></div></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CADvuK0Jnvru5%2B%3D1E1-AuAsmL7arSjdVg=
vRtTZ1ug1hP3674D9A%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter"=
>https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CADvuK0Jnvru5=
%2B%3D1E1-AuAsmL7arSjdVgvRtTZ1ug1hP3674D9A%40mail.gmail.com</a>.<br />
--94eb2c1aed7483532f0558747624--
.
Author: "'Vlad from Moscow' via ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Date: Tue, 5 Sep 2017 11:36:19 -0700 (PDT)
Raw View
------=_Part_1201_1143001241.1504636579835
Content-Type: multipart/alternative;
boundary="----=_Part_1202_612263451.1504636579836"
------=_Part_1202_612263451.1504636579836
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 5 =D1=81=D0=B5=D0=BD=D1=82=D1=
=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 13:35:56 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=
=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Micha=C5=82 Dominiak=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> It'd be confusing to use the word "set" in the name of this function,=20
> which, due to its in-place-ness wouldn't work on set iterators.
>
> On Tue, Sep 5, 2017 at 12:01 PM 'Vlad from Moscow' via ISO C++ Standard -=
=20
> Future Proposals <std-pr...@isocpp.org <javascript:>> wrote:
>
>> =D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =
=D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:52:41 UTC=
+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=
Jonathan=20
>> M=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>
>>> On 04.09.2017 20:32, 'Vlad from Moscow' via ISO C++ Standard - Future=
=20
>>> Proposals wrote:=20
>>> >=20
>>> > These algorithms are used for sequential containers that have ordered=
=20
>>> > data. They remove all elements from the ordered range [first1, last1)=
=20
>>> > that are present in the ordered range [first2, end2).=20
>>> >=20
>>>
>>> There's http://en.cppreference.com/w/cpp/algorithm/set_difference but=
=20
>>> it=20
>>> doesn't work in place.=20
>>>
>>
>> There are the following pairs of algorithms
>>
>> std::remove - std::remove_copy
>>
>> and
>>
>> std::remove_if - std::remove_copy_if
>>
>> It will be logical consistent to have also the following pair
>>
>> std::remove_set - std::set_difference=20
>>
>> --=20
>> You received this message because you are subscribed to the Google Group=
s=20
>> "ISO C++ Standard - Future Proposals" group.
>> To unsubscribe from this group and stop receiving emails from it, send a=
n=20
>> email to std-proposal...@isocpp.org <javascript:>.
>> To post to this group, send email to std-pr...@isocpp.org <javascript:>.
>> To view this discussion on the web visit=20
>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aa=
d3-4b28-8368-6d94ba432b04%40isocpp.org=20
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-a=
ad3-4b28-8368-6d94ba432b04%40isocpp.org?utm_medium=3Demail&utm_source=3Dfoo=
ter>
>> .
>>
> What to remove? To remove a set. The word set relates to what is removed.=
=20
You may use a set as the second range of the algorithm.
Can you suggest another name?
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/0dda5579-4266-4bd7-a94a-4a015f674b44%40isocpp.or=
g.
------=_Part_1202_612263451.1504636579836
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 5 =D1=
=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 13:35:56 UTC+3 =
=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Mi=
cha=C5=82 Dominiak =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote c=
lass=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px=
#ccc solid;padding-left: 1ex;"><div dir=3D"ltr">It'd be confusing to u=
se the word "set" in the name of this function, which, due to its=
in-place-ness wouldn't work on set iterators.</div><br><div class=3D"g=
mail_quote"><div dir=3D"ltr">On Tue, Sep 5, 2017 at 12:01 PM 'Vlad from=
Moscow' via ISO C++ Standard - Future Proposals <<a onmousedown=3D"=
this.href=3D'javascript:';return true;" onclick=3D"this.href=3D'=
;javascript:';return true;" href=3D"javascript:" target=3D"_blank" rel=
=3D"nofollow" gdf-obfuscated-mailto=3D"50_IFF8sAQAJ">std-pr...@isocpp.org</=
a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">=D0=
=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =D1=81=
=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:52:41 UTC+3 =D0=
=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Jonat=
han M=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:</div><div dir=
=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.=
8ex;border-left:1px #ccc solid;padding-left:1ex">On 04.09.2017 20:32, '=
Vlad from Moscow' via ISO C++ Standard - Future=20
<br>Proposals wrote:
<br>>=20
<br>> These algorithms are used for sequential containers that have orde=
red=20
<br>> data. They remove all elements from the ordered range [first1, las=
t1)=20
<br>> that are present in the ordered range [first2, end2).
<br>>=20
<br>
<br>There's <a onmousedown=3D"this.href=3D'http://www.google.com/ur=
l?q\x3dhttp%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2Falgorithm%2Fset_differe=
nce\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGyBdLYvWWIixpe6yyqSKRjlmtLRg=
9;;return true;" onclick=3D"this.href=3D'http://www.google.com/url?q\x3=
dhttp%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2Falgorithm%2Fset_difference\x2=
6sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGyBdLYvWWIixpe6yyqSKRjlmtLRg';ret=
urn true;" href=3D"http://en.cppreference.com/w/cpp/algorithm/set_differenc=
e" target=3D"_blank" rel=3D"nofollow">http://en.cppreference.com/w/<wbr>cpp=
/algorithm/set_difference</a> but it=20
<br>doesn't work in place.
<br></blockquote><div><br></div></div><div dir=3D"ltr"><div>There are the f=
ollowing pairs of algorithms</div><div><br></div><div>std::remove - std::re=
move_copy</div><div><br></div><div>and</div><div><br></div><div>std::remove=
_if - std::remove_copy_if</div><div><br></div><div>It will be logical consi=
stent to have also the following pair</div><div><br></div><div>std::remove_=
set - std::set_difference=C2=A0</div></div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a onmousedown=3D"this.href=3D'javascript:';return true;" o=
nclick=3D"this.href=3D'javascript:';return true;" href=3D"javascrip=
t:" target=3D"_blank" rel=3D"nofollow" gdf-obfuscated-mailto=3D"50_IFF8sAQA=
J">std-proposal...@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a onmousedown=3D"this.href=3D'jav=
ascript:';return true;" onclick=3D"this.href=3D'javascript:';re=
turn true;" href=3D"javascript:" target=3D"_blank" rel=3D"nofollow" gdf-obf=
uscated-mailto=3D"50_IFF8sAQAJ">std-pr...@isocpp.org</a>.<br>
To view this discussion on the web visit <a onmousedown=3D"this.href=3D'=
;https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aad3=
-4b28-8368-6d94ba432b04%40isocpp.org?utm_medium\x3demail\x26utm_source\x3df=
ooter';return true;" onclick=3D"this.href=3D'https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aad3-4b28-8368-6d94ba432b04=
%40isocpp.org?utm_medium\x3demail\x26utm_source\x3dfooter';return true;=
" href=3D"https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499=
ef2a-aad3-4b28-8368-6d94ba432b04%40isocpp.org?utm_medium=3Demail&utm_so=
urce=3Dfooter" target=3D"_blank" rel=3D"nofollow">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/1499ef2a-aad3-4b28-<wbr>8368-=
6d94ba432b04%40isocpp.org</a><wbr>.<br></blockquote></div></blockquote><div=
>What to remove? To remove a set. The word set relates to what is removed. =
You=C2=A0may use a set as the second range of the algorithm.</div><div><br>=
</div><div>Can you suggest another name?</div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/0dda5579-4266-4bd7-a94a-4a015f674b44%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/0dda5579-4266-4bd7-a94a-4a015f674b44=
%40isocpp.org</a>.<br />
------=_Part_1202_612263451.1504636579836--
------=_Part_1201_1143001241.1504636579835--
.
Author: =?UTF-8?Q?Micha=C5=82_Dominiak?= <griwes@griwes.info>
Date: Tue, 05 Sep 2017 19:05:02 +0000
Raw View
--089e0822b0242e088d055875e810
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
I'd be more comfortable with something akin to "remove_values", but we're
getting too deep into bikeshedding at this point.
I see the value of having this, but I'm not going to write a paper. Any
volunteers?
On Tue, Sep 5, 2017 at 8:36 PM 'Vlad from Moscow' via ISO C++ Standard -
Future Proposals <std-proposals@isocpp.org> wrote:
>
>
> =D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 5 =D1=81=D0=B5=D0=BD=D1=82=D1=
=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 13:35:56 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=
=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Micha=C5=82 Dominiak
> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>
>> It'd be confusing to use the word "set" in the name of this function,
>> which, due to its in-place-ness wouldn't work on set iterators.
>>
>> On Tue, Sep 5, 2017 at 12:01 PM 'Vlad from Moscow' via ISO C++ Standard =
-
>> Future Proposals <std-pr...@isocpp.org> wrote:
>>
> =D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =D1=
=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:52:41 UTC+3 =
=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Jo=
nathan
>>> M=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>>
>>>> On 04.09.2017 20:32, 'Vlad from Moscow' via ISO C++ Standard - Future
>>>> Proposals wrote:
>>>> >
>>>> > These algorithms are used for sequential containers that have ordere=
d
>>>> > data. They remove all elements from the ordered range [first1, last1=
)
>>>> > that are present in the ordered range [first2, end2).
>>>> >
>>>>
>>>> There's http://en.cppreference.com/w/cpp/algorithm/set_difference but
>>>> it
>>>> doesn't work in place.
>>>>
>>>
>>> There are the following pairs of algorithms
>>>
>>> std::remove - std::remove_copy
>>>
>>> and
>>>
>>> std::remove_if - std::remove_copy_if
>>>
>>> It will be logical consistent to have also the following pair
>>>
>>> std::remove_set - std::set_difference
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "ISO C++ Standard - Future Proposals" group.
>>>
>> To unsubscribe from this group and stop receiving emails from it, send a=
n
>>> email to std-proposal...@isocpp.org.
>>> To post to this group, send email to std-pr...@isocpp.org.
>>
>>
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-a=
ad3-4b28-8368-6d94ba432b04%40isocpp.org
>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-=
aad3-4b28-8368-6d94ba432b04%40isocpp.org?utm_medium=3Demail&utm_source=3Dfo=
oter>
>>> .
>>>
>> What to remove? To remove a set. The word set relates to what is removed=
..
> You may use a set as the second range of the algorithm.
>
> Can you suggest another name?
>
> --
> You received this message because you are subscribed to the Google Groups
> "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> To view this discussion on the web visit
> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0dda5579-426=
6-4bd7-a94a-4a015f674b44%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0dda5579-42=
66-4bd7-a94a-4a015f674b44%40isocpp.org?utm_medium=3Demail&utm_source=3Dfoot=
er>
> .
>
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/CAPCFJdT37QFi7AG8rVxS8D058Aqaw_tUyYEM_9%3DptAPxi=
%3DbAEg%40mail.gmail.com.
--089e0822b0242e088d055875e810
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">I'd be more comfortable with something akin to "r=
emove_values", but we're getting too deep into bikeshedding at thi=
s point.<div><br></div><div>I see the value of having this, but I'm not=
going to write a paper. Any volunteers?</div></div><br><div class=3D"gmail=
_quote"><div dir=3D"ltr">On Tue, Sep 5, 2017 at 8:36 PM 'Vlad from Mosc=
ow' via ISO C++ Standard - Future Proposals <<a href=3D"mailto:std-p=
roposals@isocpp.org">std-proposals@isocpp.org</a>> wrote:<br></div><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #cc=
c solid;padding-left:1ex"><div dir=3D"ltr"><br><br>=D0=B2=D1=82=D0=BE=D1=80=
=D0=BD=D0=B8=D0=BA, 5 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017=
=D0=B3., 13:35:56 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=
=D1=82=D0=B5=D0=BB=D1=8C Micha=C5=82 Dominiak =D0=BD=D0=B0=D0=BF=D0=B8=D1=
=81=D0=B0=D0=BB:<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-=
left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div>=
<div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin:0;margin=
-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">I=
t'd be confusing to use the word "set" in the name of this fu=
nction, which, due to its in-place-ness wouldn't work on set iterators.=
</div><br></blockquote></div><div dir=3D"ltr"><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding=
-left:1ex"><div class=3D"gmail_quote"><div dir=3D"ltr">On Tue, Sep 5, 2017 =
at 12:01 PM 'Vlad from Moscow' via ISO C++ Standard - Future Propos=
als <<a rel=3D"nofollow">std-pr...@isocpp.org</a>> wrote:<br></div></=
div></blockquote></div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:=
1ex"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"=
margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"=
ltr">=D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =
=D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:52:41 UTC=
+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=
Jonathan M=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:</div><div=
dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin:0;margin-lef=
t:0.8ex;border-left:1px #ccc solid;padding-left:1ex">On 04.09.2017 20:32, &=
#39;Vlad from Moscow' via ISO C++ Standard - Future=20
<br>Proposals wrote:
<br>>=20
<br>> These algorithms are used for sequential containers that have orde=
red=20
<br>> data. They remove all elements from the ordered range [first1, las=
t1)=20
<br>> that are present in the ordered range [first2, end2).
<br>>=20
<br>
<br>There's <a href=3D"http://en.cppreference.com/w/cpp/algorithm/set_d=
ifference" rel=3D"nofollow" target=3D"_blank">http://en.cppreference.com/w/=
cpp/algorithm/set_difference</a> but it=20
<br>doesn't work in place.
<br></blockquote><div><br></div></div><div dir=3D"ltr"><div>There are the f=
ollowing pairs of algorithms</div><div><br></div><div>std::remove - std::re=
move_copy</div><div><br></div><div>and</div><div><br></div><div>std::remove=
_if - std::remove_copy_if</div><div><br></div><div>It will be logical consi=
stent to have also the following pair</div><div><br></div><div>std::remove_=
set - std::set_difference=C2=A0</div></div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br></blockquote></div=
></blockquote></div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex=
"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow">std-pr...@isocpp.o=
rg</a>.</blockquote></div></blockquote></div><div dir=3D"ltr"><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #c=
cc solid;padding-left:1ex"><div class=3D"gmail_quote"><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-=
left:1ex"><br>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aad3-4b28-8368-6d94ba432b04%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter" rel=3D"nofollow" t=
arget=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgid/std-proposa=
ls/1499ef2a-aad3-4b28-8368-6d94ba432b04%40isocpp.org</a>.<br></blockquote><=
/div></blockquote></div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" =
style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left=
:1ex"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D=
"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquot=
e></div></blockquote><div>What to remove? To remove a set. The word set rel=
ates to what is removed. You=C2=A0may use a set as the second range of the =
algorithm.</div><div><br></div><div>Can you suggest another name?</div></di=
v>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_=
blank">std-proposals+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">std-proposals@isocpp.org</a>.<br>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/0dda5579-4266-4bd7-a94a-4a015f674b44%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0dda5579-4266-=
4bd7-a94a-4a015f674b44%40isocpp.org</a>.<br>
</blockquote></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAPCFJdT37QFi7AG8rVxS8D058Aqaw_tUyYEM=
_9%3DptAPxi%3DbAEg%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter"=
>https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAPCFJdT37QFi=
7AG8rVxS8D058Aqaw_tUyYEM_9%3DptAPxi%3DbAEg%40mail.gmail.com</a>.<br />
--089e0822b0242e088d055875e810--
.
Author: "Arthur O'Dwyer" <arthur.j.odwyer@gmail.com>
Date: Tue, 5 Sep 2017 12:09:04 -0700
Raw View
--089e082144f8f97074055875f5e0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
I volunteer to write a paper to remove the one problematic sentence from
the wording of set_difference. If I write it, will anyone vote for it in
Albuquerque? ;)
=E2=80=93Arthur
On Tue, Sep 5, 2017 at 12:05 PM, Micha=C5=82 Dominiak <griwes@griwes.info> =
wrote:
> I'd be more comfortable with something akin to "remove_values", but we're
> getting too deep into bikeshedding at this point.
>
> I see the value of having this, but I'm not going to write a paper. Any
> volunteers?
>
> On Tue, Sep 5, 2017 at 8:36 PM 'Vlad from Moscow' via ISO C++ Standard -
> Future Proposals <std-proposals@isocpp.org> wrote:
>
>>
>>
>> =D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 5 =D1=81=D0=B5=D0=BD=D1=82=
=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 13:35:56 UTC+3 =D0=BF=D0=BE=D0=BB=D1=
=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Micha=C5=82 Dominiak
>> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>>
>>> It'd be confusing to use the word "set" in the name of this function,
>>> which, due to its in-place-ness wouldn't work on set iterators.
>>>
>>> On Tue, Sep 5, 2017 at 12:01 PM 'Vlad from Moscow' via ISO C++ Standard
>>> - Future Proposals <std-pr...@isocpp.org> wrote:
>>>
>> =D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =
=D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:52:41 UTC=
+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=
Jonathan
>>>> M=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>>>
>>>>> On 04.09.2017 20:32, 'Vlad from Moscow' via ISO C++ Standard - Future
>>>>> Proposals wrote:
>>>>> >
>>>>> > These algorithms are used for sequential containers that have
>>>>> ordered
>>>>> > data. They remove all elements from the ordered range [first1,
>>>>> last1)
>>>>> > that are present in the ordered range [first2, end2).
>>>>> >
>>>>>
>>>>> There's http://en.cppreference.com/w/cpp/algorithm/set_difference but
>>>>> it
>>>>> doesn't work in place.
>>>>>
>>>>
>>>> There are the following pairs of algorithms
>>>>
>>>> std::remove - std::remove_copy
>>>>
>>>> and
>>>>
>>>> std::remove_if - std::remove_copy_if
>>>>
>>>> It will be logical consistent to have also the following pair
>>>>
>>>> std::remove_set - std::set_difference
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "ISO C++ Standard - Future Proposals" group.
>>>>
>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to std-proposal...@isocpp.org.
>>>> To post to this group, send email to std-pr...@isocpp.org.
>>>
>>>
>>>> To view this discussion on the web visit https://groups.google.com/a/
>>>> isocpp.org/d/msgid/std-proposals/1499ef2a-aad3-4b28-
>>>> 8368-6d94ba432b04%40isocpp.org
>>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a=
-aad3-4b28-8368-6d94ba432b04%40isocpp.org?utm_medium=3Demail&utm_source=3Df=
ooter>
>>>> .
>>>>
>>> What to remove? To remove a set. The word set relates to what is
>> removed. You may use a set as the second range of the algorithm.
>>
>> Can you suggest another name?
>>
>> --
>> You received this message because you are subscribed to the Google Group=
s
>> "ISO C++ Standard - Future Proposals" group.
>> To unsubscribe from this group and stop receiving emails from it, send a=
n
>> email to std-proposals+unsubscribe@isocpp.org.
>> To post to this group, send email to std-proposals@isocpp.org.
>> To view this discussion on the web visit https://groups.google.com/a/
>> isocpp.org/d/msgid/std-proposals/0dda5579-4266-4bd7-
>> a94a-4a015f674b44%40isocpp.org
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0dda5579-4=
266-4bd7-a94a-4a015f674b44%40isocpp.org?utm_medium=3Demail&utm_source=3Dfoo=
ter>
>> .
>>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this topic, visit https://groups.google.com/a/
> isocpp.org/d/topic/std-proposals/8MXnIrJK-6k/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> To view this discussion on the web visit https://groups.google.com/a/
> isocpp.org/d/msgid/std-proposals/CAPCFJdT37QFi7AG8rVxS8D058Aqaw
> _tUyYEM_9%3DptAPxi%3DbAEg%40mail.gmail.com
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAPCFJdT37Q=
Fi7AG8rVxS8D058Aqaw_tUyYEM_9%3DptAPxi%3DbAEg%40mail.gmail.com?utm_medium=3D=
email&utm_source=3Dfooter>
> .
>
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/CADvuK0KTW4T%2BZqv_m48RtkUKh2Sct-wZJ7x2HVke4yfm1=
Lqdow%40mail.gmail.com.
--089e082144f8f97074055875f5e0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">I volunteer to write a paper to remove the one problematic=
sentence from the wording of set_difference. If I write it, will anyone vo=
te for it in Albuquerque? ;)<div><br></div><div>=E2=80=93Arthur</div></div>=
<div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Tue, Sep 5, 20=
17 at 12:05 PM, Micha=C5=82 Dominiak <span dir=3D"ltr"><<a href=3D"mailt=
o:griwes@griwes.info" target=3D"_blank">griwes@griwes.info</a>></span> w=
rote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">I'd be more co=
mfortable with something akin to "remove_values", but we're g=
etting too deep into bikeshedding at this point.<div><br></div><div>I see t=
he value of having this, but I'm not going to write a paper. Any volunt=
eers?</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Tue, Se=
p 5, 2017 at 8:36 PM 'Vlad from Moscow' via ISO C++ Standard - Futu=
re Proposals <<a href=3D"mailto:std-proposals@isocpp.org" target=3D"_bla=
nk">std-proposals@isocpp.org</a>> wrote:<br></div><blockquote class=3D"g=
mail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-l=
eft:1ex"><div dir=3D"ltr"><br><br>=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=
=BA, 5 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 13:35=
:56 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=
=BB=D1=8C Micha=C5=82 Dominiak =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<=
blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border=
-left:1px #ccc solid;padding-left:1ex"></blockquote></div><div dir=3D"ltr">=
<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">It'd be confus=
ing to use the word "set" in the name of this function, which, du=
e to its in-place-ness wouldn't work on set iterators.</div><br></block=
quote></div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div c=
lass=3D"gmail_quote"><div dir=3D"ltr">On Tue, Sep 5, 2017 at 12:01 PM '=
Vlad from Moscow' via ISO C++ Standard - Future Proposals <<a rel=3D=
"nofollow">std-pr...@isocpp.org</a>> wrote:<br></div></div></blockquote>=
</div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin:0;=
margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=
=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">=D0=BF=D0=
=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =D1=81=D0=B5=
=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:52:41 UTC+3 =D0=BF=D0=
=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Jonathan M=
=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:</div><div dir=3D"ltr=
"><blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;bor=
der-left:1px #ccc solid;padding-left:1ex">On 04.09.2017 20:32, 'Vlad fr=
om Moscow' via ISO C++ Standard - Future=20
<br>Proposals wrote:
<br>>=20
<br>> These algorithms are used for sequential containers that have orde=
red=20
<br>> data. They remove all elements from the ordered range [first1, las=
t1)=20
<br>> that are present in the ordered range [first2, end2).
<br>>=20
<br>
<br>There's <a href=3D"http://en.cppreference.com/w/cpp/algorithm/set_d=
ifference" rel=3D"nofollow" target=3D"_blank">http://en.cppreference.com/w/=
<wbr>cpp/algorithm/set_difference</a> but it=20
<br>doesn't work in place.
<br></blockquote><div><br></div></div><div dir=3D"ltr"><div>There are the f=
ollowing pairs of algorithms</div><div><br></div><div>std::remove - std::re=
move_copy</div><div><br></div><div>and</div><div><br></div><div>std::remove=
_if - std::remove_copy_if</div><div><br></div><div>It will be logical consi=
stent to have also the following pair</div><div><br></div><div>std::remove_=
set - std::set_difference=C2=A0</div></div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br></blockquote></div=
></blockquote></div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex=
"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow">std-pr...@isocpp.o=
rg</a>.</blockquote></div></blockquote></div><div dir=3D"ltr"><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #c=
cc solid;padding-left:1ex"><div class=3D"gmail_quote"><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-=
left:1ex"><br>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aad3-4b28-8368-6d94ba432b04%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter" rel=3D"nofollow" t=
arget=3D"_blank">https://groups.google.com/a/<wbr>isocpp.org/d/msgid/std-<w=
br>proposals/1499ef2a-aad3-4b28-<wbr>8368-6d94ba432b04%40isocpp.org</a><wbr=
>.<br></blockquote></div></blockquote></div><div dir=3D"ltr"><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #cc=
c solid;padding-left:1ex"><div class=3D"gmail_quote"><blockquote class=3D"g=
mail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-l=
eft:1ex"></blockquote></div></blockquote><div>What to remove? To remove a s=
et. The word set relates to what is removed. You=C2=A0may use a set as the =
second range of the algorithm.</div><div><br></div><div>Can you suggest ano=
ther name?</div></div><span class=3D"HOEnZb"><font color=3D"#888888">
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_=
blank">std-proposals+unsubscribe@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">std-proposals@isocpp.org</a>.<br>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/0dda5579-4266-4bd7-a94a-4a015f674b44%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/0dda=
5579-4266-4bd7-<wbr>a94a-4a015f674b44%40isocpp.org</a><wbr>.<br>
</font></span></blockquote></div><span class=3D"HOEnZb"><font color=3D"#888=
888">
<p></p>
-- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups "ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/8MXnIrJK-6k/unsubscribe" target=3D"_blan=
k">https://groups.google.com/a/<wbr>isocpp.org/d/topic/std-<wbr>proposals/8=
MXnIrJK-6k/<wbr>unsubscribe</a>.<br>
To unsubscribe from this group and all its topics, send an email to <a href=
=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_blank">std-prop=
osals+unsubscribe@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">std-proposals@isocpp.org</a>.<br>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAPCFJdT37QFi7AG8rVxS8D058Aqaw_tUyYEM=
_9%3DptAPxi%3DbAEg%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoo=
ter" target=3D"_blank">https://groups.google.com/a/<wbr>isocpp.org/d/msgid/=
std-<wbr>proposals/<wbr>CAPCFJdT37QFi7AG8rVxS8D058Aqaw<wbr>_tUyYEM_9%3DptAP=
xi%3DbAEg%<wbr>40mail.gmail.com</a>.<br>
</font></span></blockquote></div><br></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CADvuK0KTW4T%2BZqv_m48RtkUKh2Sct-wZJ7=
x2HVke4yfm1Lqdow%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CADvuK0KTW4T%2B=
Zqv_m48RtkUKh2Sct-wZJ7x2HVke4yfm1Lqdow%40mail.gmail.com</a>.<br />
--089e082144f8f97074055875f5e0--
.
Author: =?UTF-8?Q?Micha=C5=82_Dominiak?= <griwes@griwes.info>
Date: Tue, 05 Sep 2017 19:18:35 +0000
Raw View
--001a1143a0bc9893a805587618fc
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
This sentence is present in all of the set-operation algorithms; do you
propose removing it from all of them? Not doing so would introduce
inconsistency. Also I'm not sure of the implications of all of this.
Just be sure to research the original reasons for why that requirement is
there; I can find it in SGI docs, so I'd assume they are there since the
very beginning. I'd be very hesitant to vote *for* such paper without a
paragraph or two explaining where the requirement comes from and what
changed between the original implementation and now to make it
unjustifiable, but if such reasons are researched and the arguments are
convincing, I'd vote for it - but that's normal procedure, isn't it? :)
On Tue, Sep 5, 2017 at 9:09 PM Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
wrote:
> I volunteer to write a paper to remove the one problematic sentence from
> the wording of set_difference. If I write it, will anyone vote for it in
> Albuquerque? ;)
>
> =E2=80=93Arthur
>
> On Tue, Sep 5, 2017 at 12:05 PM, Micha=C5=82 Dominiak <griwes@griwes.info=
>
> wrote:
>
>> I'd be more comfortable with something akin to "remove_values", but we'r=
e
>> getting too deep into bikeshedding at this point.
>>
>> I see the value of having this, but I'm not going to write a paper. Any
>> volunteers?
>>
>> On Tue, Sep 5, 2017 at 8:36 PM 'Vlad from Moscow' via ISO C++ Standard -
>> Future Proposals <std-proposals@isocpp.org> wrote:
>>
>>>
>>>
>>> =D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 5 =D1=81=D0=B5=D0=BD=D1=82=
=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 13:35:56 UTC+3 =D0=BF=D0=BE=D0=BB=D1=
=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Micha=C5=82 Dominiak
>>> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>>>
>>>> It'd be confusing to use the word "set" in the name of this function,
>>>> which, due to its in-place-ness wouldn't work on set iterators.
>>>>
>>>> On Tue, Sep 5, 2017 at 12:01 PM 'Vlad from Moscow' via ISO C++ Standar=
d
>>>> - Future Proposals <std-pr...@isocpp.org> wrote:
>>>>
>>> =D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =
=D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:52:41 UTC=
+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=
Jonathan
>>>>> M=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>>>>
>>>>>> On 04.09.2017 20:32, 'Vlad from Moscow' via ISO C++ Standard - Futur=
e
>>>>>> Proposals wrote:
>>>>>> >
>>>>>> > These algorithms are used for sequential containers that have
>>>>>> ordered
>>>>>> > data. They remove all elements from the ordered range [first1,
>>>>>> last1)
>>>>>> > that are present in the ordered range [first2, end2).
>>>>>> >
>>>>>>
>>>>>> There's http://en.cppreference.com/w/cpp/algorithm/set_difference
>>>>>> but it
>>>>>> doesn't work in place.
>>>>>>
>>>>>
>>>>> There are the following pairs of algorithms
>>>>>
>>>>> std::remove - std::remove_copy
>>>>>
>>>>> and
>>>>>
>>>>> std::remove_if - std::remove_copy_if
>>>>>
>>>>> It will be logical consistent to have also the following pair
>>>>>
>>>>> std::remove_set - std::set_difference
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "ISO C++ Standard - Future Proposals" group.
>>>>>
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to std-proposal...@isocpp.org.
>>>>> To post to this group, send email to std-pr...@isocpp.org.
>>>>
>>>>
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a=
-aad3-4b28-8368-6d94ba432b04%40isocpp.org
>>>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2=
a-aad3-4b28-8368-6d94ba432b04%40isocpp.org?utm_medium=3Demail&utm_source=3D=
footer>
>>>>> .
>>>>>
>>>> What to remove? To remove a set. The word set relates to what is
>>> removed. You may use a set as the second range of the algorithm.
>>>
>>> Can you suggest another name?
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "ISO C++ Standard - Future Proposals" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to std-proposals+unsubscribe@isocpp.org.
>>> To post to this group, send email to std-proposals@isocpp.org.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0dda5579-4=
266-4bd7-a94a-4a015f674b44%40isocpp.org
>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0dda5579-=
4266-4bd7-a94a-4a015f674b44%40isocpp.org?utm_medium=3Demail&utm_source=3Dfo=
oter>
>>> .
>>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "ISO C++ Standard - Future Proposals" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/a/isocpp.org/d/topic/std-proposals/8MXnIrJK-6k=
/unsubscribe
>> .
>> To unsubscribe from this group and all its topics, send an email to
>> std-proposals+unsubscribe@isocpp.org.
>
>
>> To post to this group, send email to std-proposals@isocpp.org.
>>
> To view this discussion on the web visit
>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAPCFJdT37Q=
Fi7AG8rVxS8D058Aqaw_tUyYEM_9%3DptAPxi%3DbAEg%40mail.gmail.com
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAPCFJdT37=
QFi7AG8rVxS8D058Aqaw_tUyYEM_9%3DptAPxi%3DbAEg%40mail.gmail.com?utm_medium=
=3Demail&utm_source=3Dfooter>
>> .
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> To view this discussion on the web visit
> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CADvuK0KTW4T=
%2BZqv_m48RtkUKh2Sct-wZJ7x2HVke4yfm1Lqdow%40mail.gmail.com
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CADvuK0KTW4=
T%2BZqv_m48RtkUKh2Sct-wZJ7x2HVke4yfm1Lqdow%40mail.gmail.com?utm_medium=3Dem=
ail&utm_source=3Dfooter>
> .
>
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/CAPCFJdQqkTEnenWR1TRgKg58T0LWXViA7YridpdwF1dbbhX=
KMA%40mail.gmail.com.
--001a1143a0bc9893a805587618fc
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">This sentence is present in all of the set-operation algor=
ithms; do you propose removing it from all of them? Not doing so would intr=
oduce inconsistency. Also I'm not sure of the implications of all of th=
is.<div><br></div><div>Just be sure to research the original reasons for wh=
y that requirement is there; I can find it in SGI docs, so I'd assume t=
hey are there since the very beginning. I'd be very hesitant to vote=C2=
=A0<i>for</i>=C2=A0such paper without a paragraph or two explaining where t=
he requirement comes from and what changed between the original implementat=
ion and now to make it unjustifiable, but if such reasons are researched an=
d the arguments are convincing, I'd vote for it - but that's normal=
procedure, isn't it? :)</div></div><br><div class=3D"gmail_quote"><div=
dir=3D"ltr">On Tue, Sep 5, 2017 at 9:09 PM Arthur O'Dwyer <<a href=
=3D"mailto:arthur.j.odwyer@gmail.com">arthur.j.odwyer@gmail.com</a>> wro=
te:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">I volunteer to=
write a paper to remove the one problematic sentence from the wording of s=
et_difference. If I write it, will anyone vote for it in Albuquerque? ;)<di=
v><br></div><div>=E2=80=93Arthur</div></div><div class=3D"gmail_extra"><br>=
<div class=3D"gmail_quote"></div></div><div class=3D"gmail_extra"><div clas=
s=3D"gmail_quote">On Tue, Sep 5, 2017 at 12:05 PM, Micha=C5=82 Dominiak <sp=
an dir=3D"ltr"><<a href=3D"mailto:griwes@griwes.info" target=3D"_blank">=
griwes@griwes.info</a>></span> wrote:<br></div></div><div class=3D"gmail=
_extra"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=
=3D"ltr">I'd be more comfortable with something akin to "remove_va=
lues", but we're getting too deep into bikeshedding at this point.=
<div><br></div><div>I see the value of having this, but I'm not going t=
o write a paper. Any volunteers?</div></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr">On Tue, Sep 5, 2017 at 8:36 PM 'Vlad from Moscow' =
via ISO C++ Standard - Future Proposals <<a href=3D"mailto:std-proposals=
@isocpp.org" target=3D"_blank">std-proposals@isocpp.org</a>> wrote:<br><=
/div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-le=
ft:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><br><br>=D0=B2=D1=82=
=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 5 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=
=80=D1=8F 2017 =D0=B3., 13:35:56 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=
=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Micha=C5=82 Dominiak =D0=BD=D0=B0=D0=
=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote class=3D"gmail_quote" style=3D"marg=
in:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"></block=
quote></div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div d=
ir=3D"ltr">It'd be confusing to use the word "set" in the nam=
e of this function, which, due to its in-place-ness wouldn't work on se=
t iterators.</div><br></blockquote></div><div dir=3D"ltr"><blockquote class=
=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc s=
olid;padding-left:1ex"><div class=3D"gmail_quote"><div dir=3D"ltr">On Tue, =
Sep 5, 2017 at 12:01 PM 'Vlad from Moscow' via ISO C++ Standard - F=
uture Proposals <<a rel=3D"nofollow">std-pr...@isocpp.org</a>> wrote:=
<br></div></div></blockquote></div><div dir=3D"ltr"><blockquote class=3D"gm=
ail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;p=
adding-left:1ex"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">=
<div dir=3D"ltr">=D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=
=B8=D0=BA, 4 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3.,=
21:52:41 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=
=B5=D0=BB=D1=8C Jonathan M=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=
=D0=BB:</div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">On 04=
..09.2017 20:32, 'Vlad from Moscow' via ISO C++ Standard - Future=20
<br>Proposals wrote:
<br>>=20
<br>> These algorithms are used for sequential containers that have orde=
red=20
<br>> data. They remove all elements from the ordered range [first1, las=
t1)=20
<br>> that are present in the ordered range [first2, end2).
<br>>=20
<br>
<br>There's <a href=3D"http://en.cppreference.com/w/cpp/algorithm/set_d=
ifference" rel=3D"nofollow" target=3D"_blank">http://en.cppreference.com/w/=
cpp/algorithm/set_difference</a> but it=20
<br>doesn't work in place.
<br></blockquote><div><br></div></div><div dir=3D"ltr"><div>There are the f=
ollowing pairs of algorithms</div><div><br></div><div>std::remove - std::re=
move_copy</div><div><br></div><div>and</div><div><br></div><div>std::remove=
_if - std::remove_copy_if</div><div><br></div><div>It will be logical consi=
stent to have also the following pair</div><div><br></div><div>std::remove_=
set - std::set_difference=C2=A0</div></div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br></blockquote></div=
></blockquote></div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex=
"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow">std-pr...@isocpp.o=
rg</a>.</blockquote></div></blockquote></div><div dir=3D"ltr"><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #c=
cc solid;padding-left:1ex"><div class=3D"gmail_quote"><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-=
left:1ex"><br>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aad3-4b28-8368-6d94ba432b04%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter" rel=3D"nofollow" t=
arget=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgid/std-proposa=
ls/1499ef2a-aad3-4b28-8368-6d94ba432b04%40isocpp.org</a>.<br></blockquote><=
/div></blockquote></div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" =
style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left=
:1ex"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D=
"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquot=
e></div></blockquote><div>What to remove? To remove a set. The word set rel=
ates to what is removed. You=C2=A0may use a set as the second range of the =
algorithm.</div><div><br></div><div>Can you suggest another name?</div></di=
v><span class=3D"m_5206692703502934752HOEnZb"><font color=3D"#888888">
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_=
blank">std-proposals+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">std-proposals@isocpp.org</a>.<br>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/0dda5579-4266-4bd7-a94a-4a015f674b44%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0dda5579-4266-=
4bd7-a94a-4a015f674b44%40isocpp.org</a>.<br>
</font></span></blockquote></div></blockquote></div></div><div class=3D"gma=
il_extra"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span c=
lass=3D"m_5206692703502934752HOEnZb"><font color=3D"#888888">
<p></p>
-- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups "ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/8MXnIrJK-6k/unsubscribe" target=3D"_blan=
k">https://groups.google.com/a/isocpp.org/d/topic/std-proposals/8MXnIrJK-6k=
/unsubscribe</a>.<br>
To unsubscribe from this group and all its topics, send an email to <a href=
=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_blank">std-prop=
osals+unsubscribe@isocpp.org</a>.</font></span></blockquote></div></div><di=
v class=3D"gmail_extra"><div class=3D"gmail_quote"><blockquote class=3D"gma=
il_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-lef=
t:1ex"><span class=3D"m_5206692703502934752HOEnZb"><font color=3D"#888888">=
<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">std-proposals@isocpp.org</a>.<br></font></span></bl=
ockquote></div></div><div class=3D"gmail_extra"><div class=3D"gmail_quote">=
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><span class=3D"m_5206692703502934752HOEnZb">=
<font color=3D"#888888">
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAPCFJdT37QFi7AG8rVxS8D058Aqaw_tUyYEM=
_9%3DptAPxi%3DbAEg%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoo=
ter" target=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgid/std-p=
roposals/CAPCFJdT37QFi7AG8rVxS8D058Aqaw_tUyYEM_9%3DptAPxi%3DbAEg%40mail.gma=
il.com</a>.<br>
</font></span></blockquote></div><br></div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_=
blank">std-proposals+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">std-proposals@isocpp.org</a>.<br>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CADvuK0KTW4T%2BZqv_m48RtkUKh2Sct-wZJ7=
x2HVke4yfm1Lqdow%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoote=
r" target=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgid/std-pro=
posals/CADvuK0KTW4T%2BZqv_m48RtkUKh2Sct-wZJ7x2HVke4yfm1Lqdow%40mail.gmail.c=
om</a>.<br>
</blockquote></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAPCFJdQqkTEnenWR1TRgKg58T0LWXViA7Yri=
dpdwF1dbbhXKMA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAPCFJdQqkTEnenWR=
1TRgKg58T0LWXViA7YridpdwF1dbbhXKMA%40mail.gmail.com</a>.<br />
--001a1143a0bc9893a805587618fc--
.
Author: "'Vlad from Moscow' via ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Date: Tue, 5 Sep 2017 12:26:30 -0700 (PDT)
Raw View
------=_Part_1272_1079823578.1504639590958
Content-Type: multipart/alternative;
boundary="----=_Part_1273_1270438225.1504639590959"
------=_Part_1273_1270438225.1504639590959
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 5 =D1=81=D0=B5=D0=BD=D1=82=D1=
=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 22:05:15 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=
=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Micha=C5=82 Dominiak=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> I'd be more comfortable with something akin to "remove_values", but we're=
=20
> getting too deep into bikeshedding at this point.
>
> I see the value of having this, but I'm not going to write a paper. Any=
=20
> volunteers?
>
> On Tue, Sep 5, 2017 at 8:36 PM 'Vlad from Moscow' via ISO C++ Standard -=
=20
> Future Proposals <std-pr...@isocpp.org <javascript:>> wrote:
>
>>
>>
>> =D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 5 =D1=81=D0=B5=D0=BD=D1=82=
=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 13:35:56 UTC+3 =D0=BF=D0=BE=D0=BB=D1=
=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Micha=C5=82 Dominiak=20
>> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>>
>>> It'd be confusing to use the word "set" in the name of this function,=
=20
>>> which, due to its in-place-ness wouldn't work on set iterators.
>>>
>>> On Tue, Sep 5, 2017 at 12:01 PM 'Vlad from Moscow' via ISO C++ Standard=
=20
>>> - Future Proposals <std-pr...@isocpp.org> wrote:
>>>
>> =D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =
=D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:52:41 UTC=
+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=
Jonathan=20
>>>> M=C3=BCller =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>>>
>>>>> On 04.09.2017 20:32, 'Vlad from Moscow' via ISO C++ Standard - Future=
=20
>>>>> Proposals wrote:=20
>>>>> >=20
>>>>> > These algorithms are used for sequential containers that have=20
>>>>> ordered=20
>>>>> > data. They remove all elements from the ordered range [first1,=20
>>>>> last1)=20
>>>>> > that are present in the ordered range [first2, end2).=20
>>>>> >=20
>>>>>
>>>>> There's http://en.cppreference.com/w/cpp/algorithm/set_difference but=
=20
>>>>> it=20
>>>>> doesn't work in place.=20
>>>>>
>>>>
>>>> There are the following pairs of algorithms
>>>>
>>>> std::remove - std::remove_copy
>>>>
>>>> and
>>>>
>>>> std::remove_if - std::remove_copy_if
>>>>
>>>> It will be logical consistent to have also the following pair
>>>>
>>>> std::remove_set - std::set_difference=20
>>>>
>>>> --=20
>>>> You received this message because you are subscribed to the Google=20
>>>> Groups "ISO C++ Standard - Future Proposals" group.
>>>>
>>> To unsubscribe from this group and stop receiving emails from it, send=
=20
>>>> an email to std-proposal...@isocpp.org.
>>>> To post to this group, send email to std-pr...@isocpp.org.
>>>
>>>
>>>> To view this discussion on the web visit=20
>>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-=
aad3-4b28-8368-6d94ba432b04%40isocpp.org=20
>>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a=
-aad3-4b28-8368-6d94ba432b04%40isocpp.org?utm_medium=3Demail&utm_source=3Df=
ooter>
>>>> .
>>>>
>>> What to remove? To remove a set. The word set relates to what is=20
>> removed. You may use a set as the second range of the algorithm.
>>
>> Can you suggest another name?
>>
>> --=20
>> You received this message because you are subscribed to the Google Group=
s=20
>> "ISO C++ Standard - Future Proposals" group.
>> To unsubscribe from this group and stop receiving emails from it, send a=
n=20
>> email to std-proposal...@isocpp.org <javascript:>.
>> To post to this group, send email to std-pr...@isocpp.org <javascript:>.
>> To view this discussion on the web visit=20
>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0dda5579-42=
66-4bd7-a94a-4a015f674b44%40isocpp.org=20
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0dda5579-4=
266-4bd7-a94a-4a015f674b44%40isocpp.org?utm_medium=3Demail&utm_source=3Dfoo=
ter>
>> .
>>
>
In my opinion remove_values is just a very bad name. remove_set is much=20
better. It is an addition to the algorithm std::set_difference. So the word=
=20
set looks appropriately.=20
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/6684f43d-8d44-4f16-843f-43b0e96b4e36%40isocpp.or=
g.
------=_Part_1273_1270438225.1504639590959
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 5 =D1=
=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 22:05:15 UTC+3 =
=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Mi=
cha=C5=82 Dominiak =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote c=
lass=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px=
#ccc solid;padding-left: 1ex;"><div dir=3D"ltr">I'd be more comfortabl=
e with something akin to "remove_values", but we're getting t=
oo deep into bikeshedding at this point.<div><br></div><div>I see the value=
of having this, but I'm not going to write a paper. Any volunteers?</d=
iv></div><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Tue, Sep 5, 201=
7 at 8:36 PM 'Vlad from Moscow' via ISO C++ Standard - Future Propo=
sals <<a onmousedown=3D"this.href=3D'javascript:';return true;" =
onclick=3D"this.href=3D'javascript:';return true;" href=3D"javascri=
pt:" target=3D"_blank" rel=3D"nofollow" gdf-obfuscated-mailto=3D"L0qWVSpIAQ=
AJ">std-pr...@isocpp.org</a>> wrote:<br></div><blockquote class=3D"gmail=
_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:=
1ex"><div dir=3D"ltr"><br><br>=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=B8=D0=BA, 5=
=D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 13:35:56 UT=
C+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=
=8C Micha=C5=82 Dominiak =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockq=
uote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:=
1px #ccc solid;padding-left:1ex"></blockquote></div><div dir=3D"ltr"><block=
quote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left=
:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">It'd be confusing to=
use the word "set" in the name of this function, which, due to i=
ts in-place-ness wouldn't work on set iterators.</div><br></blockquote>=
</div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin:0;=
margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=
=3D"gmail_quote"><div dir=3D"ltr">On Tue, Sep 5, 2017 at 12:01 PM 'Vlad=
from Moscow' via ISO C++ Standard - Future Proposals <<a rel=3D"nof=
ollow">std-pr...@isocpp.org</a>> wrote:<br></div></div></blockquote></di=
v><div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin:0;marg=
in-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"gm=
ail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bor=
der-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">=D0=BF=D0=BE=D0=
=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =D1=81=D0=B5=D0=BD=
=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:52:41 UTC+3 =D0=BF=D0=BE=D0=
=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Jonathan M=C3=BCl=
ler =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:</div><div dir=3D"ltr"><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-lef=
t:1px #ccc solid;padding-left:1ex">On 04.09.2017 20:32, 'Vlad from Mosc=
ow' via ISO C++ Standard - Future=20
<br>Proposals wrote:
<br>>=20
<br>> These algorithms are used for sequential containers that have orde=
red=20
<br>> data. They remove all elements from the ordered range [first1, las=
t1)=20
<br>> that are present in the ordered range [first2, end2).
<br>>=20
<br>
<br>There's <a onmousedown=3D"this.href=3D'http://www.google.com/ur=
l?q\x3dhttp%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2Falgorithm%2Fset_differe=
nce\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGyBdLYvWWIixpe6yyqSKRjlmtLRg=
9;;return true;" onclick=3D"this.href=3D'http://www.google.com/url?q\x3=
dhttp%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2Falgorithm%2Fset_difference\x2=
6sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGyBdLYvWWIixpe6yyqSKRjlmtLRg';ret=
urn true;" href=3D"http://en.cppreference.com/w/cpp/algorithm/set_differenc=
e" target=3D"_blank" rel=3D"nofollow">http://en.cppreference.com/w/<wbr>cpp=
/algorithm/set_difference</a> but it=20
<br>doesn't work in place.
<br></blockquote><div><br></div></div><div dir=3D"ltr"><div>There are the f=
ollowing pairs of algorithms</div><div><br></div><div>std::remove - std::re=
move_copy</div><div><br></div><div>and</div><div><br></div><div>std::remove=
_if - std::remove_copy_if</div><div><br></div><div>It will be logical consi=
stent to have also the following pair</div><div><br></div><div>std::remove_=
set - std::set_difference=C2=A0</div></div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br></blockquote></div=
></blockquote></div><div dir=3D"ltr"><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex=
"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a rel=3D"nofollow">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow">std-pr...@isocpp.o=
rg</a>.</blockquote></div></blockquote></div><div dir=3D"ltr"><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #c=
cc solid;padding-left:1ex"><div class=3D"gmail_quote"><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-=
left:1ex"><br>
To view this discussion on the web visit <a onmousedown=3D"this.href=3D'=
;https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aad3=
-4b28-8368-6d94ba432b04%40isocpp.org?utm_medium\x3demail\x26utm_source\x3df=
ooter';return true;" onclick=3D"this.href=3D'https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/1499ef2a-aad3-4b28-8368-6d94ba432b04=
%40isocpp.org?utm_medium\x3demail\x26utm_source\x3dfooter';return true;=
" href=3D"https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1499=
ef2a-aad3-4b28-8368-6d94ba432b04%40isocpp.org?utm_medium=3Demail&utm_so=
urce=3Dfooter" target=3D"_blank" rel=3D"nofollow">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/1499ef2a-aad3-4b28-<wbr>8368-=
6d94ba432b04%40isocpp.org</a><wbr>.<br></blockquote></div></blockquote></di=
v><div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin:0;marg=
in-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"gm=
ail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bor=
der-left:1px #ccc solid;padding-left:1ex"></blockquote></div></blockquote><=
div>What to remove? To remove a set. The word set relates to what is remove=
d. You=C2=A0may use a set as the second range of the algorithm.</div><div><=
br></div><div>Can you suggest another name?</div></div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a onmousedown=3D"this.href=3D'javascript:';return true;" o=
nclick=3D"this.href=3D'javascript:';return true;" href=3D"javascrip=
t:" target=3D"_blank" rel=3D"nofollow" gdf-obfuscated-mailto=3D"L0qWVSpIAQA=
J">std-proposal...@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a onmousedown=3D"this.href=3D'jav=
ascript:';return true;" onclick=3D"this.href=3D'javascript:';re=
turn true;" href=3D"javascript:" target=3D"_blank" rel=3D"nofollow" gdf-obf=
uscated-mailto=3D"L0qWVSpIAQAJ">std-pr...@isocpp.org</a>.<br>
To view this discussion on the web visit <a onmousedown=3D"this.href=3D'=
;https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0dda5579-4266=
-4bd7-a94a-4a015f674b44%40isocpp.org?utm_medium\x3demail\x26utm_source\x3df=
ooter';return true;" onclick=3D"this.href=3D'https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/0dda5579-4266-4bd7-a94a-4a015f674b44=
%40isocpp.org?utm_medium\x3demail\x26utm_source\x3dfooter';return true;=
" href=3D"https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0dda=
5579-4266-4bd7-a94a-4a015f674b44%40isocpp.org?utm_medium=3Demail&utm_so=
urce=3Dfooter" target=3D"_blank" rel=3D"nofollow">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/0dda5579-4266-4bd7-<wbr>a94a-=
4a015f674b44%40isocpp.org</a><wbr>.<br></blockquote></div></blockquote><div=
><br></div><div>In my opinion remove_values is just a very bad name. remove=
_set is much better. It is an addition to the algorithm std::set_difference=
.. So the=C2=A0word set looks=C2=A0appropriately.=C2=A0</div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/6684f43d-8d44-4f16-843f-43b0e96b4e36%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/6684f43d-8d44-4f16-843f-43b0e96b4e36=
%40isocpp.org</a>.<br />
------=_Part_1273_1270438225.1504639590959--
------=_Part_1272_1079823578.1504639590958--
.
Author: "T. C." <rs2740@gmail.com>
Date: Tue, 5 Sep 2017 21:43:08 -0700 (PDT)
Raw View
------=_Part_1796_1217928040.1504672988512
Content-Type: multipart/alternative;
boundary="----=_Part_1797_2065006694.1504672988513"
------=_Part_1797_2065006694.1504672988513
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Tuesday, September 5, 2017 at 3:18:49 PM UTC-4, Micha=C5=82 Dominiak wro=
te:
>
> This sentence is present in all of the set-operation algorithms; do you=
=20
> propose removing it from all of them? Not doing so would introduce=20
> inconsistency. Also I'm not sure of the implications of all of this.
>
>
I don't see how stuff like set_union and set_symmetric_difference can=20
sanely support overlapping output ranges. And set_difference can't either=
=20
for the general case. In the specific case of result =3D=3D first1, maybe.
Even then, I'm convinced that this is the wrong approach. set_difference=20
normally uses copy assignment, which is quite inefficient if you just want=
=20
to remove-in-place. But introducing a move special case for this is worse.=
=20
It adds more inconsistency, and doesn't relieve the caller of the need to=
=20
supply a valid copying operation - that will never be used - because the=20
move vs. copy is a run time decision, not compile time.
If this use case is to be supported, it should be its own algorithm.
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/21aa7ba1-d6c4-4542-a8ca-0aaa408a9392%40isocpp.or=
g.
------=_Part_1797_2065006694.1504672988513
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Tuesday, September 5, 2017 at 3:18:49 PM UTC-4, Micha=
=C5=82 Dominiak wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;=
margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=
=3D"ltr">This sentence is present in all of the set-operation algorithms; d=
o you propose removing it from all of them? Not doing so would introduce in=
consistency. Also I'm not sure of the implications of all of this.<div>=
<br></div></div></blockquote><div><br></div><div>I don't see how stuff =
like set_union and set_symmetric_difference can sanely support overlapping =
output ranges. And set_difference can't either for the general case. In=
the specific case of result =3D=3D first1, maybe.</div><div><br></div><div=
>Even then, I'm convinced that this is the wrong approach. set_differen=
ce normally uses copy assignment, which is quite inefficient if you just wa=
nt to remove-in-place. But introducing a move special case for this is wors=
e. It adds more inconsistency, and doesn't relieve the caller of the ne=
ed to supply a valid copying operation - that will never be used - because =
the move vs. copy is a run time decision, not compile time.</div><div><br><=
/div><div>If this use case is to be supported, it should be its own algorit=
hm.</div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/21aa7ba1-d6c4-4542-a8ca-0aaa408a9392%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/21aa7ba1-d6c4-4542-a8ca-0aaa408a9392=
%40isocpp.org</a>.<br />
------=_Part_1797_2065006694.1504672988513--
------=_Part_1796_1217928040.1504672988512--
.
Author: "Arthur O'Dwyer" <arthur.j.odwyer@gmail.com>
Date: Tue, 5 Sep 2017 22:22:56 -0700
Raw View
--94eb2c1a07ce602a1f05587e89fb
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Tue, Sep 5, 2017 at 9:43 PM, T. C. <rs2740@gmail.com> wrote:
> On Tuesday, September 5, 2017 at 3:18:49 PM UTC-4, Micha=C5=82 Dominiak w=
rote:
>>
>> This sentence is present in all of the set-operation algorithms; do you
>> propose removing it from all of them? Not doing so would introduce
>> inconsistency. Also I'm not sure of the implications of all of this.
>>
>
> I don't see how stuff like set_union and set_symmetric_difference can
> sanely support overlapping output ranges. And set_difference can't either
> for the general case. In the specific case of result =3D=3D first1, maybe=
..
>
Surely the same could be said of std::copy and std::copy_if. Yet people
have found use-cases for those algorithms.
An obvious (yet contrived) use-case would be if you had two sorted vectors
A and B, and you wanted to remove everything from A that was "less than X,
and/or present in B."
std::vector<int> A, B;
int X =3D 50;
auto a_first =3D std::lower_bound(A.begin(), A.end(), X);
auto b_first =3D std::lower_bound(B.begin(), B.end(), X);
auto end =3D std::set_difference(a_first, A.end(), b_first, B.end(),
A.begin());
A.erase(end, A.end());
> Even then, I'm convinced that this is the wrong approach. set_difference
> normally uses copy assignment, which is quite inefficient if you just wan=
t
> to remove-in-place. But introducing a move special case for this is worse=
..
> It adds more inconsistency, and doesn't relieve the caller of the need to
> supply a valid copying operation - that will never be used - because the
> move vs. copy is a run time decision, not compile time.
>
Hmm. It does use *assignment*. The semantics of that assignment are
*technically* controlled by the caller of the generic algorithm. For
example, if you used a move_iterator, you'd get move-assignment.
I started thinking about how to rewrite some algorithms in terms of others,
e.g. =E2=80=94
std::remove_if(a, b, c, p) =3D=3D> std::copy_if(move_iterator(a),
move_iterator(b), a, p)
=E2=80=94 and I realized the problem: self-move. All of the algorithms that=
are
defined in terms of regular copy-assignment can support overlapping (self-)
destination ranges, because self-copy-assignment is fine. But any algorithm
that is defined in terms of assignments-from-rvalues pretty much has to be
designed from the ground up to avoid self-moves.
So okay, if you want move-assignment when this thing is shifting elements,
you have to make it a new algorithm.
You could still call it something like inplace_set_difference(). But then
it wouldn't be able to handle the contrived example above =E2=80=94 for wha=
t that's
worth.
my $.02,
Arthur
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/CADvuK0LsttvpaiSepEExV-rNNGC%3Dy6JJj%3DJ%2BkXR50=
9HtPDg%2Bng%40mail.gmail.com.
--94eb2c1a07ce602a1f05587e89fb
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Tue, Sep 5, 2017 at 9:43 PM, T. C. <span dir=3D"ltr">&l=
t;<a href=3D"mailto:rs2740@gmail.com" target=3D"_blank">rs2740@gmail.com</a=
>></span> wrote:<br><div class=3D"gmail_extra"><div class=3D"gmail_quote=
"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid=
;padding-left:1ex"><div dir=3D"ltr"><span class=3D"gmail-">On Tuesday, Sept=
ember 5, 2017 at 3:18:49 PM UTC-4, Micha=C5=82 Dominiak wrote:<blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1p=
x;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1=
ex"><div dir=3D"ltr">This sentence is present in all of the set-operation a=
lgorithms; do you propose removing it from all of them? Not doing so would =
introduce inconsistency. Also I'm not sure of the implications of all o=
f this.</div></blockquote><div><br></div></span><div>I don't see how st=
uff like set_union and set_symmetric_difference can sanely support overlapp=
ing output ranges. And set_difference can't either for the general case=
.. In the specific case of result =3D=3D first1, maybe.</div></div></blockqu=
ote><div><br></div><div>Surely the same could be said of std::copy and std:=
:copy_if. Yet people have found use-cases for those algorithms.</div><div>A=
n obvious (yet contrived) use-case would be if you had two sorted vectors A=
and B, and you wanted to remove everything from A that was "less than=
X, and/or present in B."</div><div><br></div><div>=C2=A0 =C2=A0 std::=
vector<int> A, B;</div><div>=C2=A0 =C2=A0 int X =3D 50;</div><div><br=
></div><div>=C2=A0 =C2=A0 auto a_first =3D std::lower_bound(A.begin(), A.en=
d(), X);</div><div>=C2=A0 =C2=A0 auto b_first =3D std::lower_bound(B.begin(=
), B.end(), X);</div><div>=C2=A0 =C2=A0 auto end =3D std::set_difference(a_=
first, A.end(), b_first, B.end(), A.begin());</div><div>=C2=A0 =C2=A0 A.era=
se(end, A.end());</div><div><br></div><div>=C2=A0<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;b=
order-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"=
><div dir=3D"ltr"><div>Even then, I'm convinced that this is the wrong =
approach. set_difference normally uses copy assignment, which is quite inef=
ficient if you just want to remove-in-place. But introducing a move special=
case for this is worse. It adds more inconsistency, and doesn't reliev=
e the caller of the need to supply a valid copying operation - that will ne=
ver be used - because the move vs. copy is a run time decision, not compile=
time.<br></div></div></blockquote><div><br></div><div>Hmm. It does use <i>=
assignment</i>. The semantics of that assignment are <i>technically</i> con=
trolled by the caller of the generic algorithm. For example, if you used a =
move_iterator, you'd get move-assignment.</div><div><br></div><div>I st=
arted thinking about how to rewrite some algorithms in terms of others, e.g=
.. =E2=80=94</div><div><br></div><div><div>std::remove_if(a, b, c, p) =C2=A0=
=3D=3D> std::copy_if(move_iterator(a), move_iterator(b), a, p)</div></di=
v><div><br></div><div>=E2=80=94 and I realized the problem: self-move. All =
of the algorithms that are defined in terms of regular copy-assignment can =
support overlapping (self-) destination ranges, because self-copy-assignmen=
t is fine. But any algorithm that is defined in terms of assignments-from-r=
values pretty much has to be designed from the ground up to avoid self-move=
s.</div><div><br></div><div>So okay, if you want move-assignment when this =
thing is shifting elements, you have to make it a new algorithm.</div><div>=
You could still call it something like inplace_set_difference(). But then i=
t wouldn't be able to handle the contrived example above =E2=80=94 for =
what that's worth.</div><div><br></div><div>my $.02,</div><div>Arthur</=
div></div></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CADvuK0LsttvpaiSepEExV-rNNGC%3Dy6JJj%=
3DJ%2BkXR509HtPDg%2Bng%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoo=
ter">https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CADvuK0Ls=
ttvpaiSepEExV-rNNGC%3Dy6JJj%3DJ%2BkXR509HtPDg%2Bng%40mail.gmail.com</a>.<br=
/>
--94eb2c1a07ce602a1f05587e89fb--
.
Author: "'Vlad from Moscow' via ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Date: Wed, 6 Sep 2017 02:17:10 -0700 (PDT)
Raw View
------=_Part_1966_1582638579.1504689430394
Content-Type: multipart/alternative;
boundary="----=_Part_1967_431763866.1504689430394"
------=_Part_1967_431763866.1504689430394
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
=D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =D1=
=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:32:26 UTC+3 =
=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Vl=
ad from=20
Moscow =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> I do not remember whether I already raised this question.=20
>
> So let's I'll suggest one more algorithm for the family of removing=20
> algorithms.
>
> template <class ForwardIterator, class InputIterator>
> ForwardIterator remove_set(ForwardIterator first1, ForwardIterator last1,
> InputIterator first2, InputIterator last2);
>
> template <class ForwardIterator, class InputIterator, class Compare>
> ForwardIterator remove_set(ForwardIterator first1, ForwardIterator last1,
> InputIterator first2, InputIterator last2,
> Compare comp);
>
> These algorithms are used for sequential containers that have ordered=20
> data. They remove all elements from the ordered range [first1, last1) tha=
t=20
> are present in the ordered range [first2, end2).
>
> For example
>
> int a[] =3D { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
> int b[] =3D { 0, 2, 4, 6, 8 };
> auto last =3D remove_set(std::begin(a), std::end(a),
> std::begin(b), std::end(b));
> for (auto first =3D std::begin(a); first !=3D last; ++first)
> {
> std::cout << *first << ' ';
> }
> std::cout << std::endl;
>
>
>
> The output of this code snippet is
>
> 1 3 5 7 9
>
>
>
There is one issue I have not mentioned yet.
In fact two algorithms are required.=20
The one can be named like remove_set and other like remove_ordered_range.
The difference can be seen from the output of the code snippet
int a[] =3D { 4, 3, 3, 3, 2, 2, 1 };
int b[] =3D { 4, 3, 3, 3, 2, 2, 1 };
int c[] =3D { 3, 2 };
auto last =3D remove_set(std::begin(a), std::end(a),
std::begin(c), std::end(c), std::greater<int>());
for (auto first =3D std::begin(a); first !=3D last; ++first)
{
std::cout << *first << ' ';
}
std::cout << std::endl;
last =3D remove_ordered_range(std::begin(b), std::end(b),
std::begin(c), std::end(c), std::greater<int>());
for (auto first =3D std::begin(b); first !=3D last; ++first)
{
std::cout << *first << ' ';
}
std::cout << std::endl;
The output of the code snippet will look like
4 3 3 2 1
4 1
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/d487b00b-b463-4d82-8d7c-814fbd83d1cc%40isocpp.or=
g.
------=_Part_1967_431763866.1504689430394
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>=D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=
=D0=BD=D0=B8=D0=BA, 4 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017=
=D0=B3., 21:32:26 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=
=D1=82=D0=B5=D0=BB=D1=8C Vlad from Moscow =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=
=B0=D0=BB:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left:=
0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><di=
v>I do not remember whether I already raised this question. </div><div><br>=
</div><div>So let's I'll suggest one more algorithm for the family =
of removing algorithms.</div><div><br></div><div>template <class Forward=
Iterator, class InputIterator><br>ForwardIterator remove_set(ForwardIter=
ator first1, ForwardIterator last1,<br>=C2=A0InputIterator first2, InputIte=
rator last2);</div><div><br></div><div>template <class ForwardIterator, =
class InputIterator, class Compare><br>ForwardIterator remove_set(Forwar=
dIterator first1, ForwardIterator last1,<br>=C2=A0InputIterator first2, Inp=
utIterator last2,<br>=C2=A0Compare comp);</div><div><br></div><div>These al=
gorithms are used for sequential containers that have ordered data. They re=
move all elements from the ordered range [first1, last1) that are present i=
n the ordered range [first2, end2).</div><div><br></div><div>For example</d=
iv><div><br></div><div style=3D"border:1px solid rgb(187,187,187);word-wrap=
:break-word;background-color:rgb(250,250,250)"><code><div><span style=3D"co=
lor:#000">=C2=A0 </span><span style=3D"color:#008">int</span><span style=3D=
"color:#000"> a</span><span style=3D"color:#660">[]</span><span style=3D"co=
lor:#000"> </span><span style=3D"color:#660">=3D</span><span style=3D"color=
:#000"> </span><span style=3D"color:#660">{</span><span style=3D"color:#000=
"> </span><span style=3D"color:#066">0</span><span style=3D"color:#660">,</=
span><span style=3D"color:#000"> </span><span style=3D"color:#066">1</span>=
<span style=3D"color:#660">,</span><span style=3D"color:#000"> </span><span=
style=3D"color:#066">2</span><span style=3D"color:#660">,</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#066">3</span><span style=3D"=
color:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color=
:#066">4</span><span style=3D"color:#660">,</span><span style=3D"color:#000=
"> </span><span style=3D"color:#066">5</span><span style=3D"color:#660">,</=
span><span style=3D"color:#000"> </span><span style=3D"color:#066">6</span>=
<span style=3D"color:#660">,</span><span style=3D"color:#000"> </span><span=
style=3D"color:#066">7</span><span style=3D"color:#660">,</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#066">8</span><span style=3D"=
color:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color=
:#066">9</span><span style=3D"color:#000"> </span><span style=3D"color:#660=
">};</span><span style=3D"color:#000"><br>=C2=A0 </span><span style=3D"colo=
r:#008">int</span><span style=3D"color:#000"> b</span><span style=3D"color:=
#660">[]</span><span style=3D"color:#000"> </span><span style=3D"color:#660=
">=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#660">{=
</span><span style=3D"color:#000"> </span><span style=3D"color:#066">0</spa=
n><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span><sp=
an style=3D"color:#066">2</span><span style=3D"color:#660">,</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#066">4</span><span style=
=3D"color:#660">,</span><span style=3D"color:#000"> </span><span style=3D"c=
olor:#066">6</span><span style=3D"color:#660">,</span><span style=3D"color:=
#000"> </span><span style=3D"color:#066">8</span><span style=3D"color:#000"=
> </span><span style=3D"color:#660">};</span><span style=3D"color:#000"><br=
>=C2=A0 </span><span style=3D"color:#008">auto</span><span style=3D"color:#=
000"> </span><span style=3D"color:#008">last</span><span style=3D"color:#00=
0"> </span><span style=3D"color:#660">=3D</span><span style=3D"color:#000">=
remove_set</span><span style=3D"color:#660">(</span><span style=3D"color:#=
000">std</span><span style=3D"color:#660">::</span><span style=3D"color:#00=
8">begin</span><span style=3D"color:#660">(</span><span style=3D"color:#000=
">a</span><span style=3D"color:#660">),</span><span style=3D"color:#000"> s=
td</span><span style=3D"color:#660">::</span><span style=3D"color:#008">end=
</span><span style=3D"color:#660">(</span><span style=3D"color:#000">a</spa=
n><span style=3D"color:#660">),</span><span style=3D"color:#000"><br>=C2=A0=
=C2=A0std</span><span style=3D"color:#660">::</span><span style=3D"color:#=
008">begin</span><span style=3D"color:#660">(</span><span style=3D"color:#0=
00">b</span><span style=3D"color:#660">),</span><span style=3D"color:#000">=
std</span><span style=3D"color:#660">::</span><span style=3D"color:#008">e=
nd</span><span style=3D"color:#660">(</span><span style=3D"color:#000">b</s=
pan><span style=3D"color:#660">));</span><span style=3D"color:#000"><br>=C2=
=A0 </span><span style=3D"color:#008">for</span><span style=3D"color:#000">=
</span><span style=3D"color:#660">(</span><span style=3D"color:#008">auto<=
/span><span style=3D"color:#000"> first </span><span style=3D"color:#660">=
=3D</span><span style=3D"color:#000"> std</span><span style=3D"color:#660">=
::</span><span style=3D"color:#008">begin</span><span style=3D"color:#660">=
(</span><span style=3D"color:#000">a</span><span style=3D"color:#660">);</s=
pan><span style=3D"color:#000"> first </span><span style=3D"color:#660">!=
=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#008">las=
t</span><span style=3D"color:#660">;</span><span style=3D"color:#000"> </sp=
an><span style=3D"color:#660">++</span><span style=3D"color:#000">first</sp=
an><span style=3D"color:#660">)</span><span style=3D"color:#000"><br>=C2=A0=
</span><span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=
=C2=A0 =C2=A0std</span><span style=3D"color:#660">::</span><span style=3D"c=
olor:#000">cout </span><span style=3D"color:#660"><<</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#660">*</span><span style=3D"=
color:#000">first </span><span style=3D"color:#660"><<</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#080">' '</span><sp=
an style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 </spa=
n><span style=3D"color:#660">}</span><span style=3D"color:#000"><br>=C2=A0 =
std</span><span style=3D"color:#660">::</span><span style=3D"color:#000">co=
ut </span><span style=3D"color:#660"><<</span><span style=3D"color:#0=
00"> std</span><span style=3D"color:#660">::</span><span style=3D"color:#00=
0">endl</span><span style=3D"color:#660">;</span><span style=3D"color:#000"=
><br><br></span></div></code></div><br><div><br></div><div>The output of th=
is code snippet is</div><div><br></div><div>1 3 5 7 9</div><div><br><br></d=
iv></div></blockquote><div><br></div><div>There is one issue I=C2=A0have no=
t mentioned yet.</div><div><br></div><div>In fact=C2=A0two algorithms are r=
equired. </div><div><br></div><div>The one can be=C2=A0named like remove_se=
t=C2=A0=C2=A0 and other like remove_ordered_range.</div><div><br></div><div=
>The difference can be seen from the output of the code snippet</div><div><=
br></div><div class=3D"prettyprint" style=3D"border: 1px solid rgb(187, 187=
, 187); word-wrap: break-word; background-color: rgb(250, 250, 250);"><code=
class=3D"prettyprint"><div class=3D"subprettyprint"><span class=3D"styled-=
by-prettify" style=3D"color: #000;"><font color=3D"rgb(34,34,34)" face=3D"A=
rial" style=3D"background-color: transparent;">=C2=A0=C2=A0int a[] =3D { 4,=
3, 3, 3, 2, 2, 1=C2=A0 };<br>=C2=A0=C2=A0int b[] =3D { 4, 3, 3, 3, 2, 2, 1=
};<br>=C2=A0=C2=A0int c[] =3D { 3, 2 };</font></span></div><div class=3D"s=
ubprettyprint"><span class=3D"styled-by-prettify" style=3D"color: #000;"><f=
ont color=3D"rgb(34,34,34)" face=3D"Arial" style=3D"background-color: trans=
parent;"><br>=C2=A0=C2=A0auto last =3D remove_set(std::begin(a), std::end(a=
),<br>=C2=A0=C2=A0=C2=A0std::begin(c), std::end(c), std::greater<int>=
());</font></span></div><div class=3D"subprettyprint"><span class=3D"styled=
-by-prettify" style=3D"color: #000;"><font color=3D"rgb(34,34,34)" face=3D"=
Arial" style=3D"background-color: transparent;">=C2=A0=C2=A0for (auto first=
=3D std::begin(a); first !=3D last; ++first)<br>=C2=A0=C2=A0{<br>=C2=A0=C2=
=A0=C2=A0std::cout << *first << ' ';<br>=C2=A0=C2=A0}<b=
r>=C2=A0=C2=A0std::cout << std::endl;</font></span></div><div class=
=3D"subprettyprint"><span class=3D"styled-by-prettify" style=3D"color: #000=
;"><font color=3D"rgb(34,34,34)" face=3D"Arial" style=3D"background-color: =
transparent;">=C2=A0=C2=A0last =3D remove_ordered_range(std::begin(b), std:=
:end(b),<br>=C2=A0=C2=A0=C2=A0std::begin(c), std::end(c), std::greater<i=
nt>());</font></span></div><div class=3D"subprettyprint"><span class=3D"=
styled-by-prettify" style=3D"color: #000;"><font color=3D"rgb(34,34,34)" fa=
ce=3D"Arial" style=3D"background-color: transparent;">=C2=A0=C2=A0for (auto=
first =3D std::begin(b); first !=3D last; ++first)<br>=C2=A0=C2=A0{<br>=C2=
=A0=C2=A0=C2=A0std::cout << *first << ' ';<br>=C2=A0=C2=
=A0}<br>=C2=A0=C2=A0std::cout << std::endl;<br></font></span></div></=
code></div><div><br></div><div>The output of=C2=A0the code snippet will loo=
k like</div><div><br></div><div>4 3 3 2 1<br>4 1</div><div><br></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/d487b00b-b463-4d82-8d7c-814fbd83d1cc%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/d487b00b-b463-4d82-8d7c-814fbd83d1cc=
%40isocpp.org</a>.<br />
------=_Part_1967_431763866.1504689430394--
------=_Part_1966_1582638579.1504689430394--
.
Author: "'Vlad from Moscow' via ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Date: Wed, 6 Sep 2017 02:20:02 -0700 (PDT)
Raw View
------=_Part_1957_1077207997.1504689602940
Content-Type: multipart/alternative;
boundary="----=_Part_1958_1193884215.1504689602941"
------=_Part_1958_1193884215.1504689602941
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
=D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 4 =D1=
=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 21:32:26 UTC+3 =
=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Vl=
ad from=20
Moscow =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> I do not remember whether I already raised this question.=20
>
> So let's I'll suggest one more algorithm for the family of removing=20
> algorithms.
>
> template <class ForwardIterator, class InputIterator>
> ForwardIterator remove_set(ForwardIterator first1, ForwardIterator last1,
> InputIterator first2, InputIterator last2);
>
> template <class ForwardIterator, class InputIterator, class Compare>
> ForwardIterator remove_set(ForwardIterator first1, ForwardIterator last1,
> InputIterator first2, InputIterator last2,
> Compare comp);
>
> These algorithms are used for sequential containers that have ordered=20
> data. They remove all elements from the ordered range [first1, last1) tha=
t=20
> are present in the ordered range [first2, end2).
>
> For example
>
> int a[] =3D { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
> int b[] =3D { 0, 2, 4, 6, 8 };
> auto last =3D remove_set(std::begin(a), std::end(a),
> std::begin(b), std::end(b));
> for (auto first =3D std::begin(a); first !=3D last; ++first)
> {
> std::cout << *first << ' ';
> }
> std::cout << std::endl;
>
>
>
> The output of this code snippet is
>
> 1 3 5 7 9
>
>
>
There is one issue I have not mentioned yet.
In fact two algorithms are required.=20
The one can be named like remove_set and other like remove_ordered_range.
The difference can be seen from the output of the code snippet
int a[] =3D { 4, 3, 3, 3, 2, 2, 1 };
int b[] =3D { 4, 3, 3, 3, 2, 2, 1 };
int c[] =3D { 3, 2 };
auto last =3D remove_set(std::begin(a), std::end(a),
std::begin(c), std::end(c), std::greater<int>());
for (auto first =3D std::begin(a); first !=3D last; ++first)
{
std::cout << *first << ' ';
}
std::cout << std::endl;
last =3D remove_ordered_range(std::begin(b), std::end(b),
std::begin(c), std::end(c), std::greater<int>());
for (auto first =3D std::begin(b); first !=3D last; ++first)
{
std::cout << *first << ' ';
}
std::cout << std::endl;
The output of the code snippet will look like
4 3 3 2 1
4 1
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/4364629b-74d0-4945-9549-86cc37b24d94%40isocpp.or=
g.
------=_Part_1958_1193884215.1504689602941
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br><br>=D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=
=D0=BD=D0=B8=D0=BA, 4 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017=
=D0=B3., 21:32:26 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=
=D1=82=D0=B5=D0=BB=D1=8C Vlad from Moscow =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=
=B0=D0=BB:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left:=
0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><di=
v>I do not remember whether I already raised this question. </div><div><br>=
</div><div>So let's I'll suggest one more algorithm for the family =
of removing algorithms.</div><div><br></div><div>template <class Forward=
Iterator, class InputIterator><br>ForwardIterator remove_set(ForwardIter=
ator first1, ForwardIterator last1,<br>=C2=A0InputIterator first2, InputIte=
rator last2);</div><div><br></div><div>template <class ForwardIterator, =
class InputIterator, class Compare><br>ForwardIterator remove_set(Forwar=
dIterator first1, ForwardIterator last1,<br>=C2=A0InputIterator first2, Inp=
utIterator last2,<br>=C2=A0Compare comp);</div><div><br></div><div>These al=
gorithms are used for sequential containers that have ordered data. They re=
move all elements from the ordered range [first1, last1) that are present i=
n the ordered range [first2, end2).</div><div><br></div><div>For example</d=
iv><div><br></div><div style=3D"border:1px solid rgb(187,187,187);word-wrap=
:break-word;background-color:rgb(250,250,250)"><code><div><span style=3D"co=
lor:#000">=C2=A0 </span><span style=3D"color:#008">int</span><span style=3D=
"color:#000"> a</span><span style=3D"color:#660">[]</span><span style=3D"co=
lor:#000"> </span><span style=3D"color:#660">=3D</span><span style=3D"color=
:#000"> </span><span style=3D"color:#660">{</span><span style=3D"color:#000=
"> </span><span style=3D"color:#066">0</span><span style=3D"color:#660">,</=
span><span style=3D"color:#000"> </span><span style=3D"color:#066">1</span>=
<span style=3D"color:#660">,</span><span style=3D"color:#000"> </span><span=
style=3D"color:#066">2</span><span style=3D"color:#660">,</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#066">3</span><span style=3D"=
color:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color=
:#066">4</span><span style=3D"color:#660">,</span><span style=3D"color:#000=
"> </span><span style=3D"color:#066">5</span><span style=3D"color:#660">,</=
span><span style=3D"color:#000"> </span><span style=3D"color:#066">6</span>=
<span style=3D"color:#660">,</span><span style=3D"color:#000"> </span><span=
style=3D"color:#066">7</span><span style=3D"color:#660">,</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#066">8</span><span style=3D"=
color:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color=
:#066">9</span><span style=3D"color:#000"> </span><span style=3D"color:#660=
">};</span><span style=3D"color:#000"><br>=C2=A0 </span><span style=3D"colo=
r:#008">int</span><span style=3D"color:#000"> b</span><span style=3D"color:=
#660">[]</span><span style=3D"color:#000"> </span><span style=3D"color:#660=
">=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#660">{=
</span><span style=3D"color:#000"> </span><span style=3D"color:#066">0</spa=
n><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span><sp=
an style=3D"color:#066">2</span><span style=3D"color:#660">,</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#066">4</span><span style=
=3D"color:#660">,</span><span style=3D"color:#000"> </span><span style=3D"c=
olor:#066">6</span><span style=3D"color:#660">,</span><span style=3D"color:=
#000"> </span><span style=3D"color:#066">8</span><span style=3D"color:#000"=
> </span><span style=3D"color:#660">};</span><span style=3D"color:#000"><br=
>=C2=A0 </span><span style=3D"color:#008">auto</span><span style=3D"color:#=
000"> </span><span style=3D"color:#008">last</span><span style=3D"color:#00=
0"> </span><span style=3D"color:#660">=3D</span><span style=3D"color:#000">=
remove_set</span><span style=3D"color:#660">(</span><span style=3D"color:#=
000">std</span><span style=3D"color:#660">::</span><span style=3D"color:#00=
8">begin</span><span style=3D"color:#660">(</span><span style=3D"color:#000=
">a</span><span style=3D"color:#660">),</span><span style=3D"color:#000"> s=
td</span><span style=3D"color:#660">::</span><span style=3D"color:#008">end=
</span><span style=3D"color:#660">(</span><span style=3D"color:#000">a</spa=
n><span style=3D"color:#660">),</span><span style=3D"color:#000"><br>=C2=A0=
=C2=A0std</span><span style=3D"color:#660">::</span><span style=3D"color:#=
008">begin</span><span style=3D"color:#660">(</span><span style=3D"color:#0=
00">b</span><span style=3D"color:#660">),</span><span style=3D"color:#000">=
std</span><span style=3D"color:#660">::</span><span style=3D"color:#008">e=
nd</span><span style=3D"color:#660">(</span><span style=3D"color:#000">b</s=
pan><span style=3D"color:#660">));</span><span style=3D"color:#000"><br>=C2=
=A0 </span><span style=3D"color:#008">for</span><span style=3D"color:#000">=
</span><span style=3D"color:#660">(</span><span style=3D"color:#008">auto<=
/span><span style=3D"color:#000"> first </span><span style=3D"color:#660">=
=3D</span><span style=3D"color:#000"> std</span><span style=3D"color:#660">=
::</span><span style=3D"color:#008">begin</span><span style=3D"color:#660">=
(</span><span style=3D"color:#000">a</span><span style=3D"color:#660">);</s=
pan><span style=3D"color:#000"> first </span><span style=3D"color:#660">!=
=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#008">las=
t</span><span style=3D"color:#660">;</span><span style=3D"color:#000"> </sp=
an><span style=3D"color:#660">++</span><span style=3D"color:#000">first</sp=
an><span style=3D"color:#660">)</span><span style=3D"color:#000"><br>=C2=A0=
</span><span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=
=C2=A0 =C2=A0std</span><span style=3D"color:#660">::</span><span style=3D"c=
olor:#000">cout </span><span style=3D"color:#660"><<</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#660">*</span><span style=3D"=
color:#000">first </span><span style=3D"color:#660"><<</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#080">' '</span><sp=
an style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 </spa=
n><span style=3D"color:#660">}</span><span style=3D"color:#000"><br>=C2=A0 =
std</span><span style=3D"color:#660">::</span><span style=3D"color:#000">co=
ut </span><span style=3D"color:#660"><<</span><span style=3D"color:#0=
00"> std</span><span style=3D"color:#660">::</span><span style=3D"color:#00=
0">endl</span><span style=3D"color:#660">;</span><span style=3D"color:#000"=
><br><br></span></div></code></div><br><div><br></div><div>The output of th=
is code snippet is</div><div><br></div><div>1 3 5 7 9</div><div><br><br></d=
iv></div></blockquote><div><br></div><div>There is one issue I=C2=A0have no=
t mentioned yet.</div><div><br></div><div>In fact=C2=A0two algorithms are r=
equired. </div><div><br></div><div>The one can be=C2=A0named like remove_se=
t=C2=A0=C2=A0 and other like remove_ordered_range.</div><div><br></div><div=
>The difference can be seen from the output of the code snippet</div><div><=
br></div><div class=3D"prettyprint" style=3D"border: 1px solid rgb(187, 187=
, 187); word-wrap: break-word; background-color: rgb(250, 250, 250);"><code=
class=3D"prettyprint"><div class=3D"subprettyprint"><span class=3D"styled-=
by-prettify" style=3D"color: #000;"><font color=3D"rgb(34,34,34)" face=3D"A=
rial" style=3D"background-color: transparent;">=C2=A0=C2=A0int a[] =3D { 4,=
3, 3, 3, 2, 2, 1=C2=A0 };<br>=C2=A0=C2=A0int b[] =3D { 4, 3, 3, 3, 2, 2, 1=
};<br>=C2=A0=C2=A0int c[] =3D { 3, 2 };</font></span></div><div class=3D"s=
ubprettyprint"><span class=3D"styled-by-prettify" style=3D"color: #000;"><f=
ont color=3D"rgb(34,34,34)" face=3D"Arial" style=3D"background-color: trans=
parent;"><br>=C2=A0=C2=A0auto last =3D remove_set(std::begin(a), std::end(a=
),<br>=C2=A0=C2=A0=C2=A0std::begin(c), std::end(c), std::greater<int>=
());</font></span></div><div class=3D"subprettyprint"><span class=3D"styled=
-by-prettify" style=3D"color: #000;"><font color=3D"rgb(34,34,34)" face=3D"=
Arial" style=3D"background-color: transparent;">=C2=A0=C2=A0for (auto first=
=3D std::begin(a); first !=3D last; ++first)<br>=C2=A0=C2=A0{<br>=C2=A0=C2=
=A0=C2=A0std::cout << *first << ' ';<br>=C2=A0=C2=A0}<b=
r>=C2=A0=C2=A0std::cout << std::endl;</font></span></div><div class=
=3D"subprettyprint"><span class=3D"styled-by-prettify" style=3D"color: #000=
;"><font color=3D"rgb(34,34,34)" face=3D"Arial" style=3D"background-color: =
transparent;">=C2=A0=C2=A0last =3D remove_ordered_range(std::begin(b), std:=
:end(b),<br>=C2=A0=C2=A0=C2=A0std::begin(c), std::end(c), std::greater<i=
nt>());</font></span></div><div class=3D"subprettyprint"><span class=3D"=
styled-by-prettify" style=3D"color: #000;"><font color=3D"rgb(34,34,34)" fa=
ce=3D"Arial" style=3D"background-color: transparent;">=C2=A0=C2=A0for (auto=
first =3D std::begin(b); first !=3D last; ++first)<br>=C2=A0=C2=A0{<br>=C2=
=A0=C2=A0=C2=A0std::cout << *first << ' ';<br>=C2=A0=C2=
=A0}<br>=C2=A0=C2=A0std::cout << std::endl;<br></font></span></div></=
code></div><div><br></div><div>The output of=C2=A0the code snippet will loo=
k like</div><div><br></div><div>4 3 3 2 1<br>4 1</div><div><br></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/4364629b-74d0-4945-9549-86cc37b24d94%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/4364629b-74d0-4945-9549-86cc37b24d94=
%40isocpp.org</a>.<br />
------=_Part_1958_1193884215.1504689602941--
------=_Part_1957_1077207997.1504689602940--
.