Topic: Algorithm adapters


Author: "'Vlad from Moscow' via ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Date: Fri, 14 Sep 2018 07:55:28 -0700 (PDT)
Raw View
------=_Part_923_1105488955.1536936928344
Content-Type: multipart/alternative;
 boundary="----=_Part_924_1693732251.1536936928345"

------=_Part_924_1693732251.1536936928345
Content-Type: text/plain; charset="UTF-8"

What about introducing algorithm adapters as for example for the standard
algorithm *std::find*

find_equal_to
find_not_equal_to
find_greater
find_less
find_greater_equal
find_less_equal


They make code more readable and less complicated. Of course such adapters
can be introduced for other algorithms as for example *std::remove*.

--
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/a2779ac8-0c98-45c7-b0f3-4ab6a79ef1bf%40isocpp.org.

------=_Part_924_1693732251.1536936928345
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">What about introducing algorithm adapters as for example f=
or the standard algorithm <b>std::find</b><div><b><br></b></div><div class=
=3D"prettyprint" style=3D"background-color: rgb(250, 250, 250); border-colo=
r: rgb(187, 187, 187); border-style: solid; border-width: 1px; word-wrap: b=
reak-word;"><code class=3D"prettyprint"><div class=3D"subprettyprint"><span=
 style=3D"color: #000;" class=3D"styled-by-prettify">find_equal_to<br>find_=
not_equal_to<br>find_greater<br>find_less<br>find_greater_equal<br>find_les=
s_equal<br><br></span></div></code></div><div><br>They make code more reada=
ble and less complicated. Of course such adapters can be introduced for oth=
er algorithms as for example <b>std::remove</b>.</div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; 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/a2779ac8-0c98-45c7-b0f3-4ab6a79ef1bf%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/a2779ac8-0c98-45c7-b0f3-4ab6a79ef1bf=
%40isocpp.org</a>.<br />

------=_Part_924_1693732251.1536936928345--

------=_Part_923_1105488955.1536936928344--

.


Author: Richard Hodges <hodges.r@gmail.com>
Date: Fri, 14 Sep 2018 18:28:44 +0100
Raw View
--00000000000075424a0575d8284e
Content-Type: text/plain; charset="UTF-8"

On Fri, 14 Sep 2018 at 15:55, 'Vlad from Moscow' via ISO C++ Standard -
Future Proposals <std-proposals@isocpp.org> wrote:

> What about introducing algorithm adapters as for example for the standard
> algorithm *std::find*
>
> find_equal_to
> find_not_equal_to
> find_greater
> find_less
>

Might it be more appropriate to provide something more composable?

#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <functional>

template<class Storage>
struct is_less_than
{
    constexpr is_less_than(Storage r) : r_(std::move(r)) {}

    template<class L>
    constexpr bool operator()(L&& l) const
    {
        return std::less<>()(l, r_);
    }

    Storage r_;
};

template<class R> is_less_than(R &) ->
is_less_than<std::reference_wrapper<R>>;
template<class R> is_less_than(R &&) -> is_less_than<R>;


int main()
{
    auto v = std::vector { 1, 2, 3, 4, 5, 6, 7, 8 };

    std::remove_copy_if(begin(v), end(v),
        std::ostream_iterator<int>(std::cout, " "),
        is_less_than(5));
    std::cout << '\n';

    const int x = 6;
    std::remove_copy_if(begin(v), end(v),
        std::ostream_iterator<int>(std::cout, " "),
        is_less_than(x));
    std::cout << '\n';

    int y = 4;
    std::remove_copy_if(begin(v), end(v),
        std::ostream_iterator<int>(std::cout, " "),
        is_less_than(y));
    std::cout << '\n';
}

expected output:

5 6 7 8
6 7 8
4 5 6 7 8

http://coliru.stacked-crooked.com/a/e7bcec371fc95dfa



> find_greater_equal
> find_less_equal
>
>
> They make code more readable and less complicated. Of course such adapters
> can be introduced for other algorithms as for example *std::remove*.
>
> --
> 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/a2779ac8-0c98-45c7-b0f3-4ab6a79ef1bf%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/a2779ac8-0c98-45c7-b0f3-4ab6a79ef1bf%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>

--
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/CALvx3hZr7sQked-KofzLBEeF5LZ4ZnQXRTzEGW2Dn%2B0z7aXJXg%40mail.gmail.com.

--00000000000075424a0575d8284e
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><br><br=
><div class=3D"gmail_quote"><div dir=3D"ltr">On Fri, 14 Sep 2018 at 15:55, =
&#39;Vlad from Moscow&#39; via ISO C++ Standard - Future Proposals &lt;<a h=
ref=3D"mailto:std-proposals@isocpp.org">std-proposals@isocpp.org</a>&gt; wr=
ote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D=
"ltr">What about introducing algorithm adapters as for example for the stan=
dard algorithm <b>std::find</b><div><b><br></b></div><div class=3D"gmail-m_=
-1798713737193208883prettyprint" style=3D"background-color:rgb(250,250,250)=
;border-color:rgb(187,187,187);border-style:solid;border-width:1px"><code c=
lass=3D"gmail-m_-1798713737193208883prettyprint"><div class=3D"gmail-m_-179=
8713737193208883subprettyprint"><span style=3D"color:rgb(0,0,0)" class=3D"g=
mail-m_-1798713737193208883styled-by-prettify">find_equal_to<br>find_not_eq=
ual_to<br>find_greater<br>find_less<br></span></div></code></div></div></bl=
ockquote><div><br></div><div>Might it be more appropriate to provide someth=
ing more composable?</div><div><br></div><div><div><font face=3D"monospace,=
 monospace">#include &lt;iostream&gt;</font></div><div><font face=3D"monosp=
ace, monospace">#include &lt;vector&gt;</font></div><div><font face=3D"mono=
space, monospace">#include &lt;algorithm&gt;</font></div><div><font face=3D=
"monospace, monospace">#include &lt;iterator&gt;</font></div><div><font fac=
e=3D"monospace, monospace">#include &lt;functional&gt;</font></div><div><fo=
nt face=3D"monospace, monospace"><br></font></div><div><font face=3D"monosp=
ace, monospace">template&lt;class Storage&gt;</font></div><div><font face=
=3D"monospace, monospace">struct is_less_than</font></div><div><font face=
=3D"monospace, monospace">{</font></div><div><font face=3D"monospace, monos=
pace">=C2=A0 =C2=A0 constexpr is_less_than(Storage r) : r_(std::move(r)) {}=
</font></div><div><font face=3D"monospace, monospace"><br></font></div><div=
><font face=3D"monospace, monospace">=C2=A0 =C2=A0 template&lt;class L&gt;<=
/font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 constexp=
r bool operator()(L&amp;&amp; l) const</font></div><div><font face=3D"monos=
pace, monospace">=C2=A0 =C2=A0 {</font></div><div><font face=3D"monospace, =
monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 return std::less&lt;&gt;()(l, r_);</=
font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 }</font><=
/div><div><font face=3D"monospace, monospace"><br></font></div><div><font f=
ace=3D"monospace, monospace">=C2=A0 =C2=A0 Storage r_;</font></div><div><fo=
nt face=3D"monospace, monospace">};</font></div><div><font face=3D"monospac=
e, monospace"><br></font></div><div><font face=3D"monospace, monospace">tem=
plate&lt;class R&gt; is_less_than(R &amp;) -&gt; is_less_than&lt;std::refer=
ence_wrapper&lt;R&gt;&gt;;</font></div><div><font face=3D"monospace, monosp=
ace">template&lt;class R&gt; is_less_than(R &amp;&amp;) -&gt; is_less_than&=
lt;R&gt;;</font></div><div><font face=3D"monospace, monospace"><br></font><=
/div><div><font face=3D"monospace, monospace"><br></font></div><div><font f=
ace=3D"monospace, monospace">int main()</font></div><div><font face=3D"mono=
space, monospace">{</font></div><div><font face=3D"monospace, monospace">=
=C2=A0 =C2=A0 auto v =3D std::vector { 1, 2, 3, 4, 5, 6, 7, 8 };</font></di=
v><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0=C2=A0</font></div>=
<div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 std::remove_copy_if(=
begin(v), end(v),=C2=A0</font></div><div><font face=3D"monospace, monospace=
">=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::ostream_iterator&lt;int&gt;(std::cout, &=
quot; &quot;),=C2=A0</font></div><div><font face=3D"monospace, monospace">=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 is_less_than(5));</font></div><div><font face=
=3D"monospace, monospace">=C2=A0 =C2=A0 std::cout &lt;&lt; &#39;\n&#39;;</f=
ont></div><div><font face=3D"monospace, monospace"><br></font></div><div><f=
ont face=3D"monospace, monospace">=C2=A0 =C2=A0 const int x =3D 6;</font></=
div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 std::remove_copy=
_if(begin(v), end(v),=C2=A0</font></div><div><font face=3D"monospace, monos=
pace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::ostream_iterator&lt;int&gt;(std::cou=
t, &quot; &quot;),=C2=A0</font></div><div><font face=3D"monospace, monospac=
e">=C2=A0 =C2=A0 =C2=A0 =C2=A0 is_less_than(x));</font></div><div><font fac=
e=3D"monospace, monospace">=C2=A0 =C2=A0 std::cout &lt;&lt; &#39;\n&#39;;</=
font></div><div><font face=3D"monospace, monospace"><br></font></div><div><=
font face=3D"monospace, monospace">=C2=A0 =C2=A0 int y =3D 4;</font></div><=
div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 std::remove_copy_if(b=
egin(v), end(v),=C2=A0</font></div><div><font face=3D"monospace, monospace"=
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::ostream_iterator&lt;int&gt;(std::cout, &q=
uot; &quot;),=C2=A0</font></div><div><font face=3D"monospace, monospace">=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 is_less_than(y));</font></div><div><font face=
=3D"monospace, monospace">=C2=A0 =C2=A0 std::cout &lt;&lt; &#39;\n&#39;;</f=
ont></div><div><font face=3D"monospace, monospace">}</font></div></div><div=
><br></div><div>expected output:</div><div><br></div><div><div>5 6 7 8=C2=
=A0</div><div>6 7 8=C2=A0</div><div>4 5 6 7 8=C2=A0</div><div><br></div></d=
iv><div><a href=3D"http://coliru.stacked-crooked.com/a/e7bcec371fc95dfa">ht=
tp://coliru.stacked-crooked.com/a/e7bcec371fc95dfa</a><br></div><div><br></=
div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px =
0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div=
 dir=3D"ltr"><div class=3D"gmail-m_-1798713737193208883prettyprint" style=
=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,187);border-=
style:solid;border-width:1px"><code class=3D"gmail-m_-1798713737193208883pr=
ettyprint"><div class=3D"gmail-m_-1798713737193208883subprettyprint"><span =
style=3D"color:rgb(0,0,0)" class=3D"gmail-m_-1798713737193208883styled-by-p=
rettify">find_greater_equal<br>find_less_equal<br><br></span></div></code><=
/div><div><br>They make code more readable and less complicated. Of course =
such adapters can be introduced for other algorithms as for example <b>std:=
:remove</b>.</div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; 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/a2779ac8-0c98-45c7-b0f3-4ab6a79ef1bf%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/a2779ac8-0c98-=
45c7-b0f3-4ab6a79ef1bf%40isocpp.org</a>.<br>
</blockquote></div></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&quot; 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/CALvx3hZr7sQked-KofzLBEeF5LZ4ZnQXRTzE=
GW2Dn%2B0z7aXJXg%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CALvx3hZr7sQked=
-KofzLBEeF5LZ4ZnQXRTzEGW2Dn%2B0z7aXJXg%40mail.gmail.com</a>.<br />

--00000000000075424a0575d8284e--

.


Author: "'Vlad from Moscow' via ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Date: Sat, 15 Sep 2018 02:26:39 -0700 (PDT)
Raw View
------=_Part_1115_720473287.1537003599969
Content-Type: multipart/alternative;
 boundary="----=_Part_1116_1151719631.1537003599971"

------=_Part_1116_1151719631.1537003599971
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

There are already standard function object types in the C++ Standard

template<class T =3D void> struct equal_to;
template<class T =3D void> struct not_equal_to;
template<class T =3D void> struct greater;
template<class T =3D void> struct less;
template<class T =3D void> struct greater_equal;
template<class T =3D void> struct less_equal;



=D0=BF=D1=8F=D1=82=D0=BD=D0=B8=D1=86=D0=B0, 14 =D1=81=D0=B5=D0=BD=D1=82=D1=
=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 21:28:58 UTC+4 =D0=BF=D0=BE=D0=BB=D1=8C=
=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Richard Hodges=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
>
>
> On Fri, 14 Sep 2018 at 15:55, 'Vlad from Moscow' via ISO C++ Standard -=
=20
> Future Proposals <std-pr...@isocpp.org <javascript:>> wrote:
>
>> What about introducing algorithm adapters as for example for the standar=
d=20
>> algorithm *std::find*
>>
>> find_equal_to
>> find_not_equal_to
>> find_greater
>> find_less
>>
>
> Might it be more appropriate to provide something more composable?
>
> #include <iostream>
> #include <vector>
> #include <algorithm>
> #include <iterator>
> #include <functional>
>
> template<class Storage>
> struct is_less_than
> {
>     constexpr is_less_than(Storage r) : r_(std::move(r)) {}
>
>     template<class L>
>     constexpr bool operator()(L&& l) const
>     {
>         return std::less<>()(l, r_);
>     }
>
>     Storage r_;
> };
>
> template<class R> is_less_than(R &) ->=20
> is_less_than<std::reference_wrapper<R>>;
> template<class R> is_less_than(R &&) -> is_less_than<R>;
>
>
> int main()
> {
>     auto v =3D std::vector { 1, 2, 3, 4, 5, 6, 7, 8 };
>    =20
>     std::remove_copy_if(begin(v), end(v),=20
>         std::ostream_iterator<int>(std::cout, " "),=20
>         is_less_than(5));
>     std::cout << '\n';
>
>     const int x =3D 6;
>     std::remove_copy_if(begin(v), end(v),=20
>         std::ostream_iterator<int>(std::cout, " "),=20
>         is_less_than(x));
>     std::cout << '\n';
>
>     int y =3D 4;
>     std::remove_copy_if(begin(v), end(v),=20
>         std::ostream_iterator<int>(std::cout, " "),=20
>         is_less_than(y));
>     std::cout << '\n';
> }
>
> expected output:
>
> 5 6 7 8=20
> 6 7 8=20
> 4 5 6 7 8=20
>
> http://coliru.stacked-crooked.com/a/e7bcec371fc95dfa
>
> =20
>
>> find_greater_equal
>> find_less_equal
>>
>>
>> They make code more readable and less complicated. Of course such=20
>> adapters can be introduced for other algorithms as for example=20
>> *std::remove*.
>>
>> --=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/a2779ac8-0c=
98-45c7-b0f3-4ab6a79ef1bf%40isocpp.org=20
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/a2779ac8-0=
c98-45c7-b0f3-4ab6a79ef1bf%40isocpp.org?utm_medium=3Demail&utm_source=3Dfoo=
ter>
>> .
>>
>

--=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/2dfc2867-1beb-4556-945d-7ed10712bb8d%40isocpp.or=
g.

------=_Part_1116_1151719631.1537003599971
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">There are already standard function object types in the C+=
+ Standard<div><br></div><div><span style=3D"font-family: LMMono9-Regular; =
font-size: 8pt; color: rgb(0, 0, 0); font-variant-numeric: normal; font-var=
iant-east-asian: normal;"><div class=3D"prettyprint" style=3D"background-co=
lor: rgb(250, 250, 250); border-color: rgb(187, 187, 187); border-style: so=
lid; border-width: 1px; word-wrap: break-word;"><code class=3D"prettyprint"=
><div class=3D"subprettyprint"><span style=3D"color: #008;" class=3D"styled=
-by-prettify">template</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">&lt;</span><span style=3D"color: #008;" class=3D"styled-by-pret=
tify">class</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> T </span><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span=
 style=3D"color: #008;" class=3D"styled-by-prettify">void</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">&gt;</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008=
;" class=3D"styled-by-prettify">struct</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> equal_to</span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"><br></span><span style=3D"color: #008;" class=3D"styled-b=
y-prettify">template</span><span style=3D"color: #660;" class=3D"styled-by-=
prettify">&lt;</span><span style=3D"color: #008;" class=3D"styled-by-pretti=
fy">class</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
T </span><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span s=
tyle=3D"color: #008;" class=3D"styled-by-prettify">void</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">&gt;</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008=
;" class=3D"styled-by-prettify">struct</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> not_equal_to</span><span style=3D"color: #660;=
" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">template</span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">&lt;</span><span style=3D"color: #008;" class=3D"styled-by-=
prettify">class</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> T </span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
=3D</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span=
><span style=3D"color: #008;" class=3D"styled-by-prettify">void</span><span=
 style=3D"color: #660;" class=3D"styled-by-prettify">&gt;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">struct</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"> greater</span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">template</span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">&lt;</span><span style=3D"color: #008;" class=3D"styled-by-=
prettify">class</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> T </span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
=3D</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span=
><span style=3D"color: #008;" class=3D"styled-by-prettify">void</span><span=
 style=3D"color: #660;" class=3D"styled-by-prettify">&gt;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">struct</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"> less</span><span style=3D"color: #660;" =
class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"><br></span><span style=3D"color: #008;" class=3D"styled=
-by-prettify">template</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">&lt;</span><span style=3D"color: #008;" class=3D"styled-by-pret=
tify">class</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> T </span><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span=
 style=3D"color: #008;" class=3D"styled-by-prettify">void</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">&gt;</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008=
;" class=3D"styled-by-prettify">struct</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> greater_equal</span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">template</span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">&lt;</span><span style=3D"color: #008;" class=3D"styled-by-=
prettify">class</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> T </span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
=3D</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span=
><span style=3D"color: #008;" class=3D"styled-by-prettify">void</span><span=
 style=3D"color: #660;" class=3D"styled-by-prettify">&gt;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">struct</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"> less_equal</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">;</span></div></code></div><span style=
=3D"font-size: 8pt; font-variant-numeric: normal; font-variant-east-asian: =
normal;"><span style=3D"font-size: 8pt; font-variant-numeric: normal; font-=
variant-east-asian: normal;"><span style=3D"font-size: 8pt; font-variant-nu=
meric: normal; font-variant-east-asian: normal;"><span style=3D"font-size: =
8pt; font-variant-numeric: normal; font-variant-east-asian: normal;"><span =
style=3D"font-size: 8pt; font-variant-numeric: normal; font-variant-east-as=
ian: normal;"><br></span></span></span></span></span><br style=3D"font-vari=
ant-numeric: normal; font-variant-east-asian: normal; line-height: normal; =
text-align: -webkit-auto; text-size-adjust: auto;"></span><br>=D0=BF=D1=8F=
=D1=82=D0=BD=D0=B8=D1=86=D0=B0, 14 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=
=80=D1=8F 2018 =D0=B3., 21:28:58 UTC+4 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=
=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Richard Hodges =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"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><br><br><div cl=
ass=3D"gmail_quote"><div dir=3D"ltr">On Fri, 14 Sep 2018 at 15:55, &#39;Vla=
d from Moscow&#39; via ISO C++ Standard - Future Proposals &lt;<a href=3D"j=
avascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"ena_D2S1BwAJ" rel=3D=
"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&#39;;return true;" o=
nclick=3D"this.href=3D&#39;javascript:&#39;;return true;">std-pr...@isocpp.=
org</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"marg=
in:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1e=
x"><div dir=3D"ltr">What about introducing algorithm adapters as for exampl=
e for the standard algorithm <b>std::find</b><div><b><br></b></div><div sty=
le=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,187);borde=
r-style:solid;border-width:1px"><code><div><span style=3D"color:rgb(0,0,0)"=
>find_equal_to<br>find_not_equal_to<br>find_greater<br>find_less<br></span>=
</div></code></div></div></blockquote><div><br></div><div>Might it be more =
appropriate to provide something more composable?</div><div><br></div><div>=
<div><font face=3D"monospace, monospace">#include &lt;iostream&gt;</font></=
div><div><font face=3D"monospace, monospace">#include &lt;vector&gt;</font>=
</div><div><font face=3D"monospace, monospace">#include &lt;algorithm&gt;</=
font></div><div><font face=3D"monospace, monospace">#include &lt;iterator&g=
t;</font></div><div><font face=3D"monospace, monospace">#include &lt;functi=
onal&gt;</font></div><div><font face=3D"monospace, monospace"><br></font></=
div><div><font face=3D"monospace, monospace">template&lt;class Storage&gt;<=
/font></div><div><font face=3D"monospace, monospace">struct is_less_than</f=
ont></div><div><font face=3D"monospace, monospace">{</font></div><div><font=
 face=3D"monospace, monospace">=C2=A0 =C2=A0 constexpr is_less_than(Storage=
 r) : r_(std::move(r)) {}</font></div><div><font face=3D"monospace, monospa=
ce"><br></font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0=
 template&lt;class L&gt;</font></div><div><font face=3D"monospace, monospac=
e">=C2=A0 =C2=A0 constexpr bool operator()(L&amp;&amp; l) const</font></div=
><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 {</font></div><div>=
<font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 return std:=
:less&lt;&gt;()(l, r_);</font></div><div><font face=3D"monospace, monospace=
">=C2=A0 =C2=A0 }</font></div><div><font face=3D"monospace, monospace"><br>=
</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 Storage=
 r_;</font></div><div><font face=3D"monospace, monospace">};</font></div><d=
iv><font face=3D"monospace, monospace"><br></font></div><div><font face=3D"=
monospace, monospace">template&lt;class R&gt; is_less_than(R &amp;) -&gt; i=
s_less_than&lt;std::reference_<wbr>wrapper&lt;R&gt;&gt;;</font></div><div><=
font face=3D"monospace, monospace">template&lt;class R&gt; is_less_than(R &=
amp;&amp;) -&gt; is_less_than&lt;R&gt;;</font></div><div><font face=3D"mono=
space, monospace"><br></font></div><div><font face=3D"monospace, monospace"=
><br></font></div><div><font face=3D"monospace, monospace">int main()</font=
></div><div><font face=3D"monospace, monospace">{</font></div><div><font fa=
ce=3D"monospace, monospace">=C2=A0 =C2=A0 auto v =3D std::vector { 1, 2, 3,=
 4, 5, 6, 7, 8 };</font></div><div><font face=3D"monospace, monospace">=C2=
=A0 =C2=A0=C2=A0</font></div><div><font face=3D"monospace, monospace">=C2=
=A0 =C2=A0 std::remove_copy_if(begin(v), end(v),=C2=A0</font></div><div><fo=
nt face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::ostream_i=
terator&lt;int&gt;(<wbr>std::cout, &quot; &quot;),=C2=A0</font></div><div><=
font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 is_less_than=
(5));</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 st=
d::cout &lt;&lt; &#39;\n&#39;;</font></div><div><font face=3D"monospace, mo=
nospace"><br></font></div><div><font face=3D"monospace, monospace">=C2=A0 =
=C2=A0 const int x =3D 6;</font></div><div><font face=3D"monospace, monospa=
ce">=C2=A0 =C2=A0 std::remove_copy_if(begin(v), end(v),=C2=A0</font></div><=
div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::os=
tream_iterator&lt;int&gt;(<wbr>std::cout, &quot; &quot;),=C2=A0</font></div=
><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 is_le=
ss_than(x));</font></div><div><font face=3D"monospace, monospace">=C2=A0 =
=C2=A0 std::cout &lt;&lt; &#39;\n&#39;;</font></div><div><font face=3D"mono=
space, monospace"><br></font></div><div><font face=3D"monospace, monospace"=
>=C2=A0 =C2=A0 int y =3D 4;</font></div><div><font face=3D"monospace, monos=
pace">=C2=A0 =C2=A0 std::remove_copy_if(begin(v), end(v),=C2=A0</font></div=
><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::=
ostream_iterator&lt;int&gt;(<wbr>std::cout, &quot; &quot;),=C2=A0</font></d=
iv><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 is_=
less_than(y));</font></div><div><font face=3D"monospace, monospace">=C2=A0 =
=C2=A0 std::cout &lt;&lt; &#39;\n&#39;;</font></div><div><font face=3D"mono=
space, monospace">}</font></div></div><div><br></div><div>expected output:<=
/div><div><br></div><div><div>5 6 7 8=C2=A0</div><div>6 7 8=C2=A0</div><div=
>4 5 6 7 8=C2=A0</div><div><br></div></div><div><a href=3D"http://coliru.st=
acked-crooked.com/a/e7bcec371fc95dfa" target=3D"_blank" rel=3D"nofollow" on=
mousedown=3D"this.href=3D&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fc=
oliru.stacked-crooked.com%2Fa%2Fe7bcec371fc95dfa\x26sa\x3dD\x26sntz\x3d1\x2=
6usg\x3dAFQjCNGtcVSwJMJAixLGjypstjOa3QC10g&#39;;return true;" onclick=3D"th=
is.href=3D&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fcoliru.stacked-c=
rooked.com%2Fa%2Fe7bcec371fc95dfa\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNG=
tcVSwJMJAixLGjypstjOa3QC10g&#39;;return true;">http://coliru.stacked-crooke=
d.<wbr>com/a/e7bcec371fc95dfa</a><br></div><div><br></div><div>=C2=A0</div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div sty=
le=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,187);borde=
r-style:solid;border-width:1px"><code><div><span style=3D"color:rgb(0,0,0)"=
>find_greater_equal<br>find_less_equal<br><br></span></div></code></div><di=
v><br>They make code more readable and less complicated. Of course such ada=
pters can be introduced for other algorithms as for example <b>std::remove<=
/b>.</div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"=
ena_D2S1BwAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&=
#39;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;return true=
;">std-proposal...@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"javascript:" target=3D"_bla=
nk" gdf-obfuscated-mailto=3D"ena_D2S1BwAJ" rel=3D"nofollow" onmousedown=3D"=
this.href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#39=
;javascript:&#39;;return true;">std-pr...@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/a2779ac8-0c98-45c7-b0f3-4ab6a79ef1bf%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;https://groups.google.com/=
a/isocpp.org/d/msgid/std-proposals/a2779ac8-0c98-45c7-b0f3-4ab6a79ef1bf%40i=
socpp.org?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" on=
click=3D"this.href=3D&#39;https://groups.google.com/a/isocpp.org/d/msgid/st=
d-proposals/a2779ac8-0c98-45c7-b0f3-4ab6a79ef1bf%40isocpp.org?utm_medium\x3=
demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/a2779ac8-0c98-45c7-<wbr>b0f3-=
4ab6a79ef1bf%40isocpp.org</a><wbr>.<br>
</blockquote></div></div></div></div></div>
</blockquote></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; 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/2dfc2867-1beb-4556-945d-7ed10712bb8d%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/2dfc2867-1beb-4556-945d-7ed10712bb8d=
%40isocpp.org</a>.<br />

------=_Part_1116_1151719631.1537003599971--

------=_Part_1115_720473287.1537003599969--

.


Author: "'Vlad from Moscow' via ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Date: Wed, 19 Sep 2018 05:32:03 -0700 (PDT)
Raw View
------=_Part_2706_92495260.1537360323844
Content-Type: multipart/alternative;
 boundary="----=_Part_2707_1417043044.1537360323851"

------=_Part_2707_1417043044.1537360323851
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Here is a simple demonstrative program

#include <iostream>
#include <vector>
#include <functional>
#include <iterator>
#include <algorithm>
#include <ctime>
#include <cstdlib>


template <typename InputIterator, typename T>
inline InputIterator find_equal_to( InputIterator first, InputIterator last=
,=20
const T &value )
{
    return std::find( first, last, value );=20
}


template <typename InputIterator, typename T>
inline InputIterator find_not_equal_to( InputIterator first, InputIterator=
=20
last, const T &value )
{
    using namespace std::placeholders;
    return std::find_if( first, last, std::bind( std::not_equal_to<>(), _1,=
=20
value ) );=20
}


template <typename InputIterator, typename T>
inline InputIterator find_greater( InputIterator first, InputIterator last,=
=20
const T &value )
{
    using namespace std::placeholders;
    return std::find_if( first, last, std::bind( std::greater<>(), _1,=20
value ) );=20
}


template <typename InputIterator, typename T>
inline InputIterator find_less( InputIterator first, InputIterator last,=20
const T &value )
{
    using namespace std::placeholders;
    return std::find_if( first, last, std::bind( std::less<>(), _1, value )=
=20
);=20
}


template <typename InputIterator, typename T>
inline InputIterator find_greater_equal( InputIterator first, InputIterator=
=20
last, const T &value )
{
    using namespace std::placeholders;
    return std::find_if( first, last, std::bind( std::greater_equal<>(), _1=
,=20
value ) );=20
}


template <typename InputIterator, typename T>
inline InputIterator find_less_equal( InputIterator first, InputIterator=20
last, const T &value )
{
    using namespace std::placeholders;
    return std::find_if( first, last, std::bind( std::less_equal<>(), _1,=
=20
value ) );=20
}


template <typename InputIterator, typename T>
inline bool any_of_equal_to( InputIterator first, InputIterator last, const=
=20
T &value )
{
    using namespace std::placeholders;
    return std::any_of( first, last, std::bind( std::equal_to<>(), _1,=20
value ) );=20
}


template <typename InputIterator, typename T>
inline bool any_not_equal_to( InputIterator first, InputIterator last, cons=
t=20
T &value )
{
    using namespace std::placeholders;
    return std::any_of( first, last, std::bind( std::not_equal_to<>(), _1,=
=20
value ) );=20
}


template <typename InputIterator, typename T>
inline bool any_of_greater( InputIterator first, InputIterator last, const=
=20
T &value )
{
    using namespace std::placeholders;
    return std::any_of( first, last, std::bind( std::greater<>(), _1, value=
=20
) );=20
}


template <typename InputIterator, typename T>
inline bool any_of_less( InputIterator first, InputIterator last, const T &=
value=20
)
{
    using namespace std::placeholders;
    return std::any_of( first, last, std::bind( std::less<>(), _1, value )=
=20
);=20
}


template <typename InputIterator, typename T>
inline bool any_of_greater_equal( InputIterator first, InputIterator last,=
=20
const T &value )
{
    using namespace std::placeholders;
    return std::any_of( first, last, std::bind( std::greater_equal<>(), _1,=
=20
value ) );=20
}


template <typename InputIterator, typename T>
inline bool any_of_less_equal( InputIterator first, InputIterator last,=20
const T &value )
{
    using namespace std::placeholders;
    return std::any_of( first, last, std::bind( std::less_equal<>(), _1,=20
value ) );=20
}


int main()
{
    const size_t N =3D 10;
    std::vector<unsigned int> v;
    v.reserve( N );
   =20
    std::srand( ( unsigned int )std::time( nullptr ) );
   =20
    std::generate_n( std::back_inserter( v ), N, [] { return std::rand() % =
N
; } );
   =20
    for ( const auto &item : v ) std::cout << item << ' ';
    std::cout << '\n';
   =20
    unsigned int value =3D std::rand() % N;


    if ( any_of_equal_to( std::begin( v ), std::end( v ), value ) )
    {
        std::cout << value << " is encountered at position "=20
                  << std::distance( std::begin( v ), find_equal_to( std::
begin( v ), std::end( v ), value ) )
                  << '\n';
    }
    else
    {
        std::cout << value << " has not been found.\n";
    }


    if ( any_of_equal_to( std::begin( v ), std::end( v ), value ) )
    {
        std::cout << "A value not equal to " << value << " is encountered=
=20
at position "=20
                  << std::distance( std::begin( v ), find_not_equal_to( std
::begin( v ), std::end( v ), value ) )
                  << '\n';
    }
    else
    {
        std::cout << "A value not equal to " << value << " has not been=20
found.\n";
    }


    if ( any_of_greater( std::begin( v ), std::end( v ), value ) )
    {
        std::cout << "A value greater than " << value << " is encountered=
=20
at position "=20
                  << std::distance( std::begin( v ), find_greater( std::
begin( v ), std::end( v ), value ) )
                  << '\n';
    }
    else
    {
        std::cout << "A value greater than " << value << " has not been=20
found.\n";
    }


    if ( any_of_less( std::begin( v ), std::end( v ), value ) )
    {
        std::cout << "A value less than " << value << " is encountered at=
=20
position "=20
                  << std::distance( std::begin( v ), find_less( std::begin(=
=20
v ), std::end( v ), value ) )
                  << '\n';
    }
    else
    {
        std::cout << "A value less than " << value << " has not been=20
found.\n";
    }
   =20
    if ( any_of_greater_equal( std::begin( v ), std::end( v ), value ) )
    {
        std::cout << "A value greater than or equal to " << value << " is=
=20
encountered at position "=20
                  << std::distance( std::begin( v ), find_greater_equal( st=
d
::begin( v ), std::end( v ), value ) )
                  << '\n';
    }
    else
    {
        std::cout << "A value greater than or equal to " << value << " has=
=20
not been found.\n";
    }


    if ( any_of_less_equal( std::begin( v ), std::end( v ), value ) )
    {
        std::cout << "A value less than or equal to " << value << " is=20
encountered at position "=20
                  << std::distance( std::begin( v ), find_less_equal( std::
begin( v ), std::end( v ), value ) )
                  << '\n';
    }
    else
    {
        std::cout << "A value less than or equal to " << value << " has not=
=20
been found.\n";
    }
}

Its output might look like

6 9 0 2 8 1 2 8 3 4=20
1 is encountered at position 5
A value not equal to 1 is encountered at position 0
A value greater than 1 is encountered at position 0
A value less than 1 is encountered at position 2
A value greater than or equal to 1 is encountered at position 0
A value less than or equal to 1 is encountered at position 2



=D1=81=D1=83=D0=B1=D0=B1=D0=BE=D1=82=D0=B0, 15 =D1=81=D0=B5=D0=BD=D1=82=D1=
=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 12:26:40 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=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> There are already standard function object types in the C++ Standard
>
> template<class T =3D void> struct equal_to;
> template<class T =3D void> struct not_equal_to;
> template<class T =3D void> struct greater;
> template<class T =3D void> struct less;
> template<class T =3D void> struct greater_equal;
> template<class T =3D void> struct less_equal;
>
>
>
> =D0=BF=D1=8F=D1=82=D0=BD=D0=B8=D1=86=D0=B0, 14 =D1=81=D0=B5=D0=BD=D1=82=
=D1=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 21:28:58 UTC+4 =D0=BF=D0=BE=D0=BB=D1=
=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Richard Hodges=20
> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>
>>
>>
>> On Fri, 14 Sep 2018 at 15:55, 'Vlad from Moscow' via ISO C++ Standard -=
=20
>> Future Proposals <std-pr...@isocpp.org> wrote:
>>
>>> What about introducing algorithm adapters as for example for the=20
>>> standard algorithm *std::find*
>>>
>>> find_equal_to
>>> find_not_equal_to
>>> find_greater
>>> find_less
>>>
>>
>> Might it be more appropriate to provide something more composable?
>>
>> #include <iostream>
>> #include <vector>
>> #include <algorithm>
>> #include <iterator>
>> #include <functional>
>>
>> template<class Storage>
>> struct is_less_than
>> {
>>     constexpr is_less_than(Storage r) : r_(std::move(r)) {}
>>
>>     template<class L>
>>     constexpr bool operator()(L&& l) const
>>     {
>>         return std::less<>()(l, r_);
>>     }
>>
>>     Storage r_;
>> };
>>
>> template<class R> is_less_than(R &) ->=20
>> is_less_than<std::reference_wrapper<R>>;
>> template<class R> is_less_than(R &&) -> is_less_than<R>;
>>
>>
>> int main()
>> {
>>     auto v =3D std::vector { 1, 2, 3, 4, 5, 6, 7, 8 };
>>    =20
>>     std::remove_copy_if(begin(v), end(v),=20
>>         std::ostream_iterator<int>(std::cout, " "),=20
>>         is_less_than(5));
>>     std::cout << '\n';
>>
>>     const int x =3D 6;
>>     std::remove_copy_if(begin(v), end(v),=20
>>         std::ostream_iterator<int>(std::cout, " "),=20
>>         is_less_than(x));
>>     std::cout << '\n';
>>
>>     int y =3D 4;
>>     std::remove_copy_if(begin(v), end(v),=20
>>         std::ostream_iterator<int>(std::cout, " "),=20
>>         is_less_than(y));
>>     std::cout << '\n';
>> }
>>
>> expected output:
>>
>> 5 6 7 8=20
>> 6 7 8=20
>> 4 5 6 7 8=20
>>
>> http://coliru.stacked-crooked.com/a/e7bcec371fc95dfa
>>
>> =20
>>
>>> find_greater_equal
>>> find_less_equal
>>>
>>>
>>> They make code more readable and less complicated. Of course such=20
>>> adapters can be introduced for other algorithms as for example=20
>>> *std::remove*.
>>>
>>> --=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/a2779ac8-0=
c98-45c7-b0f3-4ab6a79ef1bf%40isocpp.org=20
>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/a2779ac8-=
0c98-45c7-b0f3-4ab6a79ef1bf%40isocpp.org?utm_medium=3Demail&utm_source=3Dfo=
oter>
>>> .
>>>
>>

--=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/860372fc-b857-4ed0-a1d7-9a86872ef9df%40isocpp.or=
g.

------=_Part_2707_1417043044.1537360323851
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Here is a simple demonstrative program<div><br></div><div>=
<div class=3D"prettyprint" style=3D"background-color: rgb(250, 250, 250); b=
order-color: rgb(187, 187, 187); border-style: solid; border-width: 1px; wo=
rd-wrap: break-word;"><code class=3D"prettyprint"><div class=3D"subprettypr=
int"><span style=3D"color: #800;" class=3D"styled-by-prettify">#include</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span =
style=3D"color: #080;" class=3D"styled-by-prettify">&lt;iostream&gt;</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span =
style=3D"color: #800;" class=3D"styled-by-prettify">#include</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"co=
lor: #080;" class=3D"styled-by-prettify">&lt;vector&gt;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span style=3D"co=
lor: #800;" class=3D"styled-by-prettify">#include</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #080;"=
 class=3D"styled-by-prettify">&lt;functional&gt;</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #800=
;" class=3D"styled-by-prettify">#include</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"> </span><span style=3D"color: #080;" class=3D=
"styled-by-prettify">&lt;iterator&gt;</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"><br></span><span style=3D"color: #800;" class=3D=
"styled-by-prettify">#include</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> </span><span style=3D"color: #080;" class=3D"styled-by-=
prettify">&lt;algorithm&gt;</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"><br></span><span style=3D"color: #800;" class=3D"styled-by=
-prettify">#include</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> </span><span style=3D"color: #080;" class=3D"styled-by-prettify">=
&lt;ctime&gt;</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"><br></span><span style=3D"color: #800;" class=3D"styled-by-prettify">#in=
clude</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span style=3D"color: #080;" class=3D"styled-by-prettify">&lt;cstdlib&gt=
;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br><br><=
br></span><span style=3D"color: #008;" class=3D"styled-by-prettify">templat=
e</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><=
span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;</span><span s=
tyle=3D"color: #008;" class=3D"styled-by-prettify">typename</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"col=
or: #606;" class=3D"styled-by-prettify">InputIterator</span><span style=3D"=
color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" clas=
s=3D"styled-by-prettify">typename</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> T</span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">&gt;</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"><br></span><span style=3D"color: #008;" class=3D"styled-by-pretti=
fy">inline</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 </span><span style=3D"color: #606;" class=3D"styled-by-prettify">InputIter=
ator</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> find_=
equal_to</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><sp=
an style=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> first</span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #606;" class=3D"styled-by-prettify">InputIterator</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008=
;" class=3D"styled-by-prettify">last</span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-pr=
ettify">const</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"> T </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&amp=
;</span><span style=3D"color: #000;" class=3D"styled-by-prettify">value </s=
pan><span style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span=
 style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">{</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">return</span><span style=3D"=
color: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify">find</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> first</span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">,</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">last</s=
pan><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span=
 style=3D"color: #000;" class=3D"styled-by-prettify"> value </span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">);</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> <br></span><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">}</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"><br><br><br></span><span style=3D"color: #008;"=
 class=3D"styled-by-prettify">template</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">&lt;</span><span style=3D"color: #008;" class=3D"styled-=
by-prettify">typename</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"> </span><span style=3D"color: #606;" class=3D"styled-by-prettify=
">InputIterator</span><span style=3D"color: #660;" class=3D"styled-by-prett=
ify">,</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </s=
pan><span style=3D"color: #008;" class=3D"styled-by-prettify">typename</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> T</span><span =
style=3D"color: #660;" class=3D"styled-by-prettify">&gt;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span style=3D"co=
lor: #008;" class=3D"styled-by-prettify">inline</span><span style=3D"color:=
 #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #606;" c=
lass=3D"styled-by-prettify">InputIterator</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"> find_not_equal_to</span><span style=3D"colo=
r: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"> </span><span style=3D"color: #606;" class=3D=
"styled-by-prettify">InputIterator</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> first</span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"> </span><span style=3D"color: #606;" class=3D"styled-by-prettify=
">InputIterator</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">last=
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">const</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> T </span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">&amp;</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify">value </span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">)</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"><br></span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">{</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #008;" class=3D"styled-by-=
prettify">using</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">name=
space</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify">placeholders</span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">;</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><=
span style=3D"color: #008;" class=3D"styled-by-prettify">return</span><span=
 style=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify">find_if</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"> first</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-pret=
tify">last</span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
,</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std</spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify">bind</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify">not_equal_to</span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">&lt;&gt;(),</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"> _1</span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"> value </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">)</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">);</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> <br></span><span =
style=3D"color: #660;" class=3D"styled-by-prettify">}</span><span style=3D"=
color: #000;" class=3D"styled-by-prettify"><br><br><br></span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">template</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">&lt;</span><span style=3D"color: #008=
;" class=3D"styled-by-prettify">typename</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"> </span><span style=3D"color: #606;" class=3D=
"styled-by-prettify">InputIterator</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-pret=
tify">typename</span><span style=3D"color: #000;" class=3D"styled-by-pretti=
fy"> T</span><span style=3D"color: #660;" class=3D"styled-by-prettify">&gt;=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></span=
><span style=3D"color: #008;" class=3D"styled-by-prettify">inline</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> find_greater</span><span=
 style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D=
"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #=
606;" class=3D"styled-by-prettify">InputIterator</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> first</span><span style=3D"color: #6=
60;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify"> </span><span style=3D"color: #606;" class=3D"styl=
ed-by-prettify">InputIterator</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-=
prettify">last</span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">,</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span style=3D"color: #008;" class=3D"styled-by-prettify">const</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"> T </span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">&amp;</span><span style=3D=
"color: #000;" class=3D"styled-by-prettify">value </span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"><br></span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">{</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">using</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-=
prettify">namespace</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify">place=
holders</span><span style=3D"color: #660;" class=3D"styled-by-prettify">;</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =
=C2=A0 </span><span style=3D"color: #008;" class=3D"styled-by-prettify">ret=
urn</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std</s=
pan><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify">find_if</span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> first</span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"=
styled-by-prettify">last</span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">,</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> std</span><span style=3D"color: #660;" class=3D"styled-by-prettify">:=
:</span><span style=3D"color: #000;" class=3D"styled-by-prettify">bind</spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify">greater</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">&lt;&gt;(),</span><span style=3D"color:=
 #000;" class=3D"styled-by-prettify"> _1</span><span style=3D"color: #660;"=
 class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> value </span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">)</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
);</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> <br></s=
pan><span style=3D"color: #660;" class=3D"styled-by-prettify">}</span><span=
 style=3D"color: #000;" class=3D"styled-by-prettify"><br><br><br></span><sp=
an style=3D"color: #008;" class=3D"styled-by-prettify">template</span><span=
 style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">&lt;</span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">typename</span><span style=3D"color: =
#000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #606;" cl=
ass=3D"styled-by-prettify">InputIterator</span><span style=3D"color: #660;"=
 class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-b=
y-prettify">typename</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> T</span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">&gt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=
</span><span style=3D"color: #008;" class=3D"styled-by-prettify">inline</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span =
style=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> find_less</span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #606;" class=3D"styled-by-prettify">InputIterator</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> first</span><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> </span><span style=3D"color: #606;" class=3D"s=
tyled-by-prettify">InputIterator</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"style=
d-by-prettify">last</span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">,</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 </span><span style=3D"color: #008;" class=3D"styled-by-prettify">const</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> T </span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">&amp;</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify">value </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">{</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #008=
;" class=3D"styled-by-prettify">using</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">namespace</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> std</span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">::</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y">placeholders</span><span style=3D"color: #660;" class=3D"styled-by-prett=
ify">;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=
=C2=A0 =C2=A0 </span><span style=3D"color: #008;" class=3D"styled-by-pretti=
fy">return</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 std</span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify">find_if</span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> first</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" =
class=3D"styled-by-prettify">last</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
>bind</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> std</span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify">less</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">&lt;&gt;(),</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> _1</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"> value </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">)</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">);</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> <=
br></span><span style=3D"color: #660;" class=3D"styled-by-prettify">}</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify"><br><br><br></sp=
an><span style=3D"color: #008;" class=3D"styled-by-prettify">template</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">&lt;</span><span style=3D=
"color: #008;" class=3D"styled-by-prettify">typename</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #60=
6;" class=3D"styled-by-prettify">InputIterator</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">typename</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"> T</span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">&gt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"><br></span><span style=3D"color: #008;" class=3D"styled-by-prettify">inli=
ne</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span>=
<span style=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> find_greater_=
equal</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span =
style=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> first</span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #60=
6;" class=3D"styled-by-prettify">InputIterator</span><span style=3D"color: =
#000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" cl=
ass=3D"styled-by-prettify">last</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-prettif=
y">const</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> T=
 </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&amp;</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify">value </span><=
span style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">{</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"co=
lor: #008;" class=3D"styled-by-prettify">using</span><span style=3D"color: =
#000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" cl=
ass=3D"styled-by-prettify">namespace</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify">placeholders</span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">;</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #008;" class=3D"styled-=
by-prettify">return</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify">find_=
if</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> first</span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">last</span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify">bind</span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify">greater_equal</span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&gt;(),</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> _1</span><span=
 style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D=
"color: #000;" class=3D"styled-by-prettify"> value </span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">);</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"> <br></span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">}</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"><br><br><br></span><span style=3D"color: #008;" class=3D"styled-by-pretti=
fy">template</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;</s=
pan><span style=3D"color: #008;" class=3D"styled-by-prettify">typename</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span s=
tyle=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">typename</span><span style=3D"color: =
#000;" class=3D"styled-by-prettify"> T</span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">&gt;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">inline</span><span style=3D"color: #000;" class=3D"styled=
-by-prettify"> </span><span style=3D"color: #606;" class=3D"styled-by-prett=
ify">InputIterator</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"> find_less_equal</span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> </span><span style=3D"color: #606;" class=3D"styled-by-prettify">Inpu=
tIterator</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
first</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span =
style=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">last</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">const</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> T </span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">&amp;</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify">value </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">)</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </s=
pan><span style=3D"color: #008;" class=3D"styled-by-prettify">using</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span styl=
e=3D"color: #008;" class=3D"styled-by-prettify">namespace</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify">placeholders</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #0=
08;" class=3D"styled-by-prettify">return</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify">find_if</span><span style=3D"color: #660;" class=3D"styled-=
by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-pretti=
fy"> first</span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
,</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><=
span style=3D"color: #008;" class=3D"styled-by-prettify">last</span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify">bind</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
>less_equal</span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>&lt;&gt;(),</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> _1</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> value </span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">);</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> <br></span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">}</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"><br><br><br></span><span style=3D"color: #008;" class=3D"=
styled-by-prettify">template</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">&lt;</span><span style=3D"color: #008;" class=3D"styled-by-prettif=
y">typename</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> </span><span style=3D"color: #606;" class=3D"styled-by-prettify">InputIte=
rator</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span =
style=3D"color: #008;" class=3D"styled-by-prettify">typename</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> T</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">&gt;</span><span style=3D"color: =
#000;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #008;"=
 class=3D"styled-by-prettify">inline</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"sty=
led-by-prettify">bool</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"> any_of_equal_to</span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"> </span><span style=3D"color: #606;" class=3D"styled-by-prettify">I=
nputIterator</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> first</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><sp=
an style=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span sty=
le=3D"color: #008;" class=3D"styled-by-prettify">last</span><span style=3D"=
color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" clas=
s=3D"styled-by-prettify">const</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"> T </span><span style=3D"color: #660;" class=3D"styled-=
by-prettify">&amp;</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify">value </span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">)</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br><=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </=
span><span style=3D"color: #008;" class=3D"styled-by-prettify">using</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span sty=
le=3D"color: #008;" class=3D"styled-by-prettify">namespace</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify">placeholders</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #=
008;" class=3D"styled-by-prettify">return</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify">any_of</span><span style=3D"color: #660;" class=3D"styled-=
by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-pretti=
fy"> first</span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
,</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><=
span style=3D"color: #008;" class=3D"styled-by-prettify">last</span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify">bind</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
>equal_to</span><span style=3D"color: #660;" class=3D"styled-by-prettify">&=
lt;&gt;(),</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 _1</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify"> value </span><s=
pan style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">);</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"> <br></span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">}</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"><br><br><br></span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">template</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">&lt;</span><span style=3D"color: #008;" class=3D"styled-by-prettify"=
>typename</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
</span><span style=3D"color: #606;" class=3D"styled-by-prettify">InputItera=
tor</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span st=
yle=3D"color: #008;" class=3D"styled-by-prettify">typename</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"> T</span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">&gt;</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" c=
lass=3D"styled-by-prettify">inline</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"style=
d-by-prettify">bool</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> any_not_equal_to</span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify"> </span><span style=3D"color: #606;" class=3D"styled-by-prettify">In=
putIterator</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> first</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><spa=
n style=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span styl=
e=3D"color: #008;" class=3D"styled-by-prettify">last</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">const</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> T </span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">&amp;</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify">value </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">)</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </s=
pan><span style=3D"color: #008;" class=3D"styled-by-prettify">using</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span styl=
e=3D"color: #008;" class=3D"styled-by-prettify">namespace</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify">placeholders</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #0=
08;" class=3D"styled-by-prettify">return</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify">any_of</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"> first</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><s=
pan style=3D"color: #008;" class=3D"styled-by-prettify">last</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify">bind</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify">no=
t_equal_to</span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
&lt;&gt;(),</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> _1</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> value </span><=
span style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"colo=
r: #660;" class=3D"styled-by-prettify">);</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"> <br></span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">}</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"><br><br><br></span><span style=3D"color: #008;" class=3D"s=
tyled-by-prettify">template</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">&lt;</span><span style=3D"color: #008;" class=3D"styled-by-prettify=
">typename</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 </span><span style=3D"color: #606;" class=3D"styled-by-prettify">InputIter=
ator</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span s=
tyle=3D"color: #008;" class=3D"styled-by-prettify">typename</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> T</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">&gt;</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" =
class=3D"styled-by-prettify">inline</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"styl=
ed-by-prettify">bool</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> any_of_greater</span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> </span><span style=3D"color: #606;" class=3D"styled-by-prettify">Inp=
utIterator</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 first</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span=
 style=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">last</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">const</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> T </span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">&amp;</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify">value </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">)</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </s=
pan><span style=3D"color: #008;" class=3D"styled-by-prettify">using</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span styl=
e=3D"color: #008;" class=3D"styled-by-prettify">namespace</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify">placeholders</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #0=
08;" class=3D"styled-by-prettify">return</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify">any_of</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"> first</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><s=
pan style=3D"color: #008;" class=3D"styled-by-prettify">last</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify">bind</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify">gr=
eater</span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&=
gt;(),</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> _1<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> value </span><span =
style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"=
color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #6=
60;" class=3D"styled-by-prettify">);</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"> <br></span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">}</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"><br><br><br></span><span style=3D"color: #008;" class=3D"styled=
-by-prettify">template</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">&lt;</span><span style=3D"color: #008;" class=3D"styled-by-prettify">typ=
ename</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span style=3D"color: #606;" class=3D"styled-by-prettify">InputIterator<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">typename</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> T</span><span style=3D"colo=
r: #660;" class=3D"styled-by-prettify">&gt;</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" cl=
ass=3D"styled-by-prettify">inline</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"style=
d-by-prettify">bool</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> any_of_less</span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> </span><span style=3D"color: #606;" class=3D"styled-by-prettify">InputIt=
erator</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> fir=
st</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span sty=
le=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"=
color: #008;" class=3D"styled-by-prettify">last</span><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"s=
tyled-by-prettify">const</span><span style=3D"color: #000;" class=3D"styled=
-by-prettify"> T </span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">&amp;</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
">value </span><span style=3D"color: #660;" class=3D"styled-by-prettify">)<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">{</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><=
span style=3D"color: #008;" class=3D"styled-by-prettify">using</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"=
color: #008;" class=3D"styled-by-prettify">namespace</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify">placeholders</span><span style=3D"color: #660;"=
 class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #008;" =
class=3D"styled-by-prettify">return</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify">any_of</span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> f=
irst</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span s=
tyle=3D"color: #008;" class=3D"styled-by-prettify">last</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify">bind</span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify">less<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&gt;(),=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> _1</span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> value </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" =
class=3D"styled-by-prettify">);</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> <br></span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">}</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify"><br><br><br></span><span style=3D"color: #008;" class=3D"styled-by-p=
rettify">template</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&l=
t;</span><span style=3D"color: #008;" class=3D"styled-by-prettify">typename=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><s=
pan style=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"co=
lor: #008;" class=3D"styled-by-prettify">typename</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify"> T</span><span style=3D"color: #660;=
" class=3D"styled-by-prettify">&gt;</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" class=3D"s=
tyled-by-prettify">inline</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-pret=
tify">bool</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 any_of_greater_equal</span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> </span><span style=3D"color: #606;" class=3D"styled-by-prettify">InputIt=
erator</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> fir=
st</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span sty=
le=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"=
color: #008;" class=3D"styled-by-prettify">last</span><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"s=
tyled-by-prettify">const</span><span style=3D"color: #000;" class=3D"styled=
-by-prettify"> T </span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">&amp;</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
">value </span><span style=3D"color: #660;" class=3D"styled-by-prettify">)<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">{</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><=
span style=3D"color: #008;" class=3D"styled-by-prettify">using</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"=
color: #008;" class=3D"styled-by-prettify">namespace</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify">placeholders</span><span style=3D"color: #660;"=
 class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #008;" =
class=3D"styled-by-prettify">return</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify">any_of</span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> f=
irst</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span s=
tyle=3D"color: #008;" class=3D"styled-by-prettify">last</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify">bind</span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify">great=
er_equal</span><span style=3D"color: #660;" class=3D"styled-by-prettify">&l=
t;&gt;(),</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
_1</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> value </span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">);</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"> <br></span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">}</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"><br><br><br></span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">template</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">&lt;</span><span style=3D"color: #008;" class=3D"styled-by-prettify"=
>typename</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
</span><span style=3D"color: #606;" class=3D"styled-by-prettify">InputItera=
tor</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span st=
yle=3D"color: #008;" class=3D"styled-by-prettify">typename</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"> T</span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">&gt;</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" c=
lass=3D"styled-by-prettify">inline</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"style=
d-by-prettify">bool</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> any_of_less_equal</span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"> </span><span style=3D"color: #606;" class=3D"styled-by-prettify">I=
nputIterator</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> first</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><sp=
an style=3D"color: #606;" class=3D"styled-by-prettify">InputIterator</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span sty=
le=3D"color: #008;" class=3D"styled-by-prettify">last</span><span style=3D"=
color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" clas=
s=3D"styled-by-prettify">const</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"> T </span><span style=3D"color: #660;" class=3D"styled-=
by-prettify">&amp;</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify">value </span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">)</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br><=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </=
span><span style=3D"color: #008;" class=3D"styled-by-prettify">using</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span sty=
le=3D"color: #008;" class=3D"styled-by-prettify">namespace</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify">placeholders</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #=
008;" class=3D"styled-by-prettify">return</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify">any_of</span><span style=3D"color: #660;" class=3D"styled-=
by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-pretti=
fy"> first</span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
,</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><=
span style=3D"color: #008;" class=3D"styled-by-prettify">last</span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify">bind</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
>less_equal</span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>&lt;&gt;(),</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> _1</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> value </span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">);</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> <br></span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">}</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"><br><br><br></span><span style=3D"color: #008;" class=3D"=
styled-by-prettify">int</span><span style=3D"color: #000;" class=3D"styled-=
by-prettify"> main</span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">()</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
<br></span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=
=A0 </span><span style=3D"color: #008;" class=3D"styled-by-prettify">const<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> size_t N <=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span styl=
e=3D"color: #066;" class=3D"styled-by-prettify">10</span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 std</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify">vector</span><span style=3D"color: #660;"=
 class=3D"styled-by-prettify">&lt;</span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">unsigned</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"style=
d-by-prettify">int</span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">&gt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> v</span><span style=3D"color: #660;" class=3D"styled-by-prettify">;</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=
=A0 v</span><span style=3D"color: #660;" class=3D"styled-by-prettify">.</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify">reserve</span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> N </span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">);</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 std</=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify">srand</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"style=
d-by-prettify">unsigned</span><span style=3D"color: #000;" class=3D"styled-=
by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-pretti=
fy">int</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">)</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify">std</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify">time</span><span style=3D"color: #66=
0;" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"style=
d-by-prettify">nullptr</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">)</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">);</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 <br>=
=C2=A0 =C2=A0 std</span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify">g=
enerate_n</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std</span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify">back_inserter</span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> v </span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">),</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> N</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">[]</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> <=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">return</span><span style=3D"=
color: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify">rand</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">()</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">%</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> N=
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">;</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">}</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" =
class=3D"styled-by-prettify">);</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"><br>=C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 </span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">for</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;=
" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"style=
d-by-prettify">const</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify"=
>auto</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span style=3D"color: #660;" class=3D"styled-by-prettify">&amp;</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify">item </span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">:</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> v </span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">)</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify">cout </span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> item </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
</span><span style=3D"color: #080;" class=3D"styled-by-prettify">&#39; &#39=
;</span><span style=3D"color: #660;" class=3D"styled-by-prettify">;</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 =
std</span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify">cout </span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;</span><span=
 style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D=
"color: #080;" class=3D"styled-by-prettify">&#39;\n&#39;</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">;</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 <=
/span><span style=3D"color: #008;" class=3D"styled-by-prettify">unsigned</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span=
 style=3D"color: #008;" class=3D"styled-by-prettify">int</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> value </span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">=3D</span><span style=3D"color:=
 #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #660;=
" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify">rand</span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">()</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>%</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> N</span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">;</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"><br><br><br>=C2=A0 =C2=A0=
 </span><span style=3D"color: #008;" class=3D"styled-by-prettify">if</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"> any_of_equal_to</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">::</span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">begin</span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> v </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">),</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><s=
pan style=3D"color: #008;" class=3D"styled-by-prettify">end</span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"> v </span><span style=3D"color: #66=
0;" class=3D"styled-by-prettify">),</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify"> value </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">)</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">)</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br=
>=C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by-prett=
ify">{</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styled-=
by-prettify">cout </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> value </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> </span><span style=3D"color: #080;" class=3D"styled-by-prettify">&quot; i=
s encountered at position &quot;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> std</span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
::</span><span style=3D"color: #000;" class=3D"styled-by-prettify">distance=
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D"c=
olor: #008;" class=3D"styled-by-prettify">begin</span><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> v </span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">),</span><span style=3D"color: #000;" class=3D"styled-=
by-prettify"> find_equal_to</span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">::</span><span style=3D"color: #008;" class=3D"styled-by-prettify">begin<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> v </span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">),</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #6=
60;" class=3D"styled-by-prettify">::</span><span style=3D"color: #008;" cla=
ss=3D"styled-by-prettify">end</span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> v </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">),</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> valu=
e </span><span style=3D"color: #660;" class=3D"styled-by-prettify">)</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">&lt;&lt;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #080;" class=3D"style=
d-by-prettify">&#39;\n&#39;</span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">;</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">}</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #008;" class=3D"style=
d-by-prettify">else</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">{</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color: #66=
0;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify">cout </span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"> value </span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-=
by-prettify"> </span><span style=3D"color: #080;" class=3D"styled-by-pretti=
fy">&quot; has not been found.\n&quot;</span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">}</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"><br><br><br>=C2=A0 =C2=A0 </span><span style=3D"color: #0=
08;" class=3D"styled-by-prettify">if</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"> any_of_equal_to</span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> std</span><span style=3D"color: #660;" class=3D"styled-by-prettify">:=
:</span><span style=3D"color: #008;" class=3D"styled-by-prettify">begin</sp=
an><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"> v </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">),</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #66=
0;" class=3D"styled-by-prettify">::</span><span style=3D"color: #008;" clas=
s=3D"styled-by-prettify">end</span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> v </span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">),</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> value=
 </span><span style=3D"color: #660;" class=3D"styled-by-prettify">)</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">{</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify">cout </span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"colo=
r: #080;" class=3D"styled-by-prettify">&quot;A value not equal to &quot;</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span=
 style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify"> value </span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #080;" class=3D"styled-by-prettify">&quot; is encountered at position &qu=
ot;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> <br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span=
 style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify">distance</span><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">::</span><span style=3D"color: #008;" class=3D"styl=
ed-by-prettify">begin</span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> v </span><span style=3D"color: #660;" class=3D"styled-by-prettify">),</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> find_not_equ=
al_to</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> std</span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">begin</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"> v </span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">),</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"> std</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">::</span><span style=3D"color: #008;" class=3D"styled-by-pretti=
fy">end</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"> v </span><s=
pan style=3D"color: #660;" class=3D"styled-by-prettify">),</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"> value </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" =
class=3D"styled-by-prettify">)</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> </span><span style=3D"color: #080;" class=3D"styled-by-prettify">&#39;\n=
&#39;</span><span style=3D"color: #660;" class=3D"styled-by-prettify">;</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=
=A0 </span><span style=3D"color: #660;" class=3D"styled-by-prettify">}</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=
=A0 </span><span style=3D"color: #008;" class=3D"styled-by-prettify">else</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =
=C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">::</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify">cout </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
</span><span style=3D"color: #080;" class=3D"styled-by-prettify">&quot;A va=
lue not equal to &quot;</span><span style=3D"color: #000;" class=3D"styled-=
by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> value </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&=
lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </=
span><span style=3D"color: #080;" class=3D"styled-by-prettify">&quot; has n=
ot been found.\n&quot;</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">;</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">}</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"><br><br><br>=C2=A0 =C2=A0 </span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">if</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>(</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> any_of_=
greater</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std</span><=
span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span sty=
le=3D"color: #008;" class=3D"styled-by-prettify">begin</span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"> v </span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">),</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"> std</span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">::</span><span style=3D"color: #008;" class=3D"styled-by-pret=
tify">end</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> v </span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">),</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> value </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" =
class=3D"styled-by-prettify">)</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">{</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: =
#000;" class=3D"styled-by-prettify">cout </span><span style=3D"color: #660;=
" class=3D"styled-by-prettify">&lt;&lt;</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify"> </span><span style=3D"color: #080;" class=3D"=
styled-by-prettify">&quot;A value greater than &quot;</span><span style=3D"=
color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #6=
60;" class=3D"styled-by-prettify">&lt;&lt;</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> value </span><span style=3D"color: #660;" =
class=3D"styled-by-prettify">&lt;&lt;</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"> </span><span style=3D"color: #080;" class=3D"st=
yled-by-prettify">&quot; is encountered at position &quot;</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"> <br>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">&lt;&lt;</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify">distance</span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> std</span><span style=3D"color: #660;" class=3D"styled-by-prettify">:=
:</span><span style=3D"color: #008;" class=3D"styled-by-prettify">begin</sp=
an><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"> v </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">),</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify"> find_greater</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">::</span><span style=3D"color: #008;" class=3D"s=
tyled-by-prettify">begin</span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> v </span><span style=3D"color: #660;" class=3D"styled-by-prettify">),=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std</span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span s=
tyle=3D"color: #008;" class=3D"styled-by-prettify">end</span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"> v </span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">),</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"> value </span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">)</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">)=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #080;" class=3D"styled-by-prettify">&#39;\n&#39;</span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"colo=
r: #660;" class=3D"styled-by-prettify">}</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">else</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">{</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><s=
pan style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify">cout </span><span style=3D"=
color: #660;" class=3D"styled-by-prettify">&lt;&lt;</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #080=
;" class=3D"styled-by-prettify">&quot;A value greater than &quot;</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> value </span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">&lt;&lt;</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #08=
0;" class=3D"styled-by-prettify">&quot; has not been found.\n&quot;</span><=
span style=3D"color: #660;" class=3D"styled-by-prettify">;</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><s=
pan style=3D"color: #660;" class=3D"styled-by-prettify">}</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"><br><br><br>=C2=A0 =C2=A0 </=
span><span style=3D"color: #008;" class=3D"styled-by-prettify">if</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> any_of_less</span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">::</span><span style=3D"color: #008;" class=3D"sty=
led-by-prettify">begin</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"> v </span><span style=3D"color: #660;" class=3D"styled-by-prettify">),</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std</span><=
span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span sty=
le=3D"color: #008;" class=3D"styled-by-prettify">end</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"> v </span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">),</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"> value </span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">)</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">)</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =
=C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">::</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify">cout </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
</span><span style=3D"color: #080;" class=3D"styled-by-prettify">&quot;A va=
lue less than &quot;</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
value </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;=
&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </spa=
n><span style=3D"color: #080;" class=3D"styled-by-prettify">&quot; is encou=
ntered at position &quot;</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&l=
t;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std=
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify">distance</span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #00=
8;" class=3D"styled-by-prettify">begin</span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> v </span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">),</span><span style=3D"color: #000;" class=3D"styled-by-pretti=
fy"> find_less</span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><s=
pan style=3D"color: #008;" class=3D"styled-by-prettify">begin</span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> v </span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">),</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">::</span><span style=3D"color: #008;" class=3D"styled-=
by-prettify">end</span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> v =
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">),</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> value </span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> </span><span style=3D"color: #080;" class=3D"styled-by-prettify">=
&#39;\n&#39;</span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>}</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color: #008;" class=3D"styled-by-prettify"=
>else</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=
=C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">{</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styled-=
by-prettify">cout </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> </span><span style=3D"color: #080;" class=3D"styled-by-prettify">&qu=
ot;A value less than &quot;</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> value </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> </span><span style=3D"color: #080;" class=3D"styled-by-prettify">&quot; h=
as not been found.\n&quot;</span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">;</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">}</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"><br>=C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 </span><span style=3D"color: #008=
;" class=3D"styled-by-prettify">if</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> any_of_greater_equal</span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">::</span><span style=3D"color: #008;" class=3D"styled-by-prettify">begin<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> v </span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">),</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #6=
60;" class=3D"styled-by-prettify">::</span><span style=3D"color: #008;" cla=
ss=3D"styled-by-prettify">end</span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> v </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">),</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> valu=
e </span><span style=3D"color: #660;" class=3D"styled-by-prettify">)</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">{</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify">cout </span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"col=
or: #080;" class=3D"styled-by-prettify">&quot;A value greater than or equal=
 to &quot;</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> value </sp=
an><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span st=
yle=3D"color: #080;" class=3D"styled-by-prettify">&quot; is encountered at =
position &quot;</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> std</span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify">distance</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">::</span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">begin</span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> v </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">),</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> find=
_greater_equal</span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><s=
pan style=3D"color: #008;" class=3D"styled-by-prettify">begin</span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> v </span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">),</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">::</span><span style=3D"color: #008;" class=3D"styled-=
by-prettify">end</span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> v =
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">),</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> value </span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> </span><span style=3D"color: #080;" class=3D"styled-by-prettify">=
&#39;\n&#39;</span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>}</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color: #008;" class=3D"styled-by-prettify"=
>else</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=
=C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">{</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styled-=
by-prettify">cout </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> </span><span style=3D"color: #080;" class=3D"styled-by-prettify">&qu=
ot;A value greater than or equal to &quot;</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">&lt;&lt;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> value </span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> </span><span style=3D"color: #080;" class=3D"styled-by-=
prettify">&quot; has not been found.\n&quot;</span><span style=3D"color: #6=
60;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #66=
0;" class=3D"styled-by-prettify">}</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br><br><br>=C2=A0 =C2=A0 </span><span style=3D"col=
or: #008;" class=3D"styled-by-prettify">if</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> any_of_less_equal</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">::</span><span style=3D"color: #008;" class=3D"styled-by-prettify"=
>begin</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> v </span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">),</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #00=
8;" class=3D"styled-by-prettify">end</span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> v </span><span style=3D"color: #660;" class=3D"styled-by-=
prettify">),</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> value </span><span style=3D"color: #660;" class=3D"styled-by-prettify">)=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><s=
pan style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">{</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 std</span><span style=3D"color: #660;" class=3D"styled-by-prettify">::<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify">cout </span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span styl=
e=3D"color: #080;" class=3D"styled-by-prettify">&quot;A value less than or =
equal to &quot;</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;=
&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> value=
 </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&lt;<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><sp=
an style=3D"color: #080;" class=3D"styled-by-prettify">&quot; is encountere=
d at position &quot;</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 </span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&l=
t;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std</sp=
an><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span=
 style=3D"color: #000;" class=3D"styled-by-prettify">distance</span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #008;" c=
lass=3D"styled-by-prettify">begin</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> v </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">),</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 find_less_equal</span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> st=
d</span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span>=
<span style=3D"color: #008;" class=3D"styled-by-prettify">begin</span><span=
 style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D=
"color: #000;" class=3D"styled-by-prettify"> v </span><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">),</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">::</span><span style=3D"color: #008;" class=3D"styl=
ed-by-prettify">end</span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 v </span><span style=3D"color: #660;" class=3D"styled-by-prettify">),</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> value </span><=
span style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"colo=
r: #660;" class=3D"styled-by-prettify">)</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> </span><span style=3D"color: #080;" class=3D"styled-by-prettify"=
>&#39;\n&#39;</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=
=C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">}</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=
=C2=A0 =C2=A0 </span><span style=3D"color: #008;" class=3D"styled-by-pretti=
fy">else</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><b=
r>=C2=A0 =C2=A0 </span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">{</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br=
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify">cout </span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> </span><span style=3D"color: #080;" class=3D"styled-by-prettify">=
&quot;A value less than or equal to &quot;</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">&lt;&lt;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> value </span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">&lt;&lt;</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> </span><span style=3D"color: #080;" class=3D"styled-by-=
prettify">&quot; has not been found.\n&quot;</span><span style=3D"color: #6=
60;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color: #66=
0;" class=3D"styled-by-prettify">}</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br></span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">}</span></div></code></div><div><br>Its output might look=
 like</div><div><br></div><div><pre class=3D"StdOut" data-type=3D"StdOut" d=
ata-text=3D"6 9 0 2 8 1 2 8 3 4=20
1 is encountered at position 5
A value not equal to 1 is encountered at position 0
A value greater than 1 is encountered at position 0
A value less than 1 is encountered at position 2
A value greater than or equal to1 is encountered at position 0
A value less than or equal to1 is encountered at position 2
" style=3D"box-sizing: border-box; overflow: auto; font-family: &quot;Couri=
er New&quot;, monospace; line-height: 1.42857; color: rgb(255, 255, 255); w=
ord-break: break-all; word-wrap: break-word; background-color: rgb(0, 0, 0)=
; border-radius: 4px; white-space: pre-wrap;">6 9 0 2 8 1 2 8 3 4=20
1 is encountered at position 5
A value not equal to 1 is encountered at position 0
A value greater than 1 is encountered at position 0
A value less than 1 is encountered at position 2
A value greater than or equal to 1 is encountered at position 0
A value less than or equal to 1 is encountered at position 2</pre></div><di=
v><br></div><br>=D1=81=D1=83=D0=B1=D0=B1=D0=BE=D1=82=D0=B0, 15 =D1=81=D0=B5=
=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 12:26:40 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 M=
oscow =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;p=
adding-left: 1ex;"><div dir=3D"ltr">There are already standard function obj=
ect types in the C++ Standard<div><br></div><div><span style=3D"font-family=
:LMMono9-Regular;font-size:8pt;color:rgb(0,0,0)"><div style=3D"background-c=
olor:rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;bord=
er-width:1px;word-wrap:break-word"><code><div><span style=3D"color:#008">te=
mplate</span><span style=3D"color:#660">&lt;</span><span style=3D"color:#00=
8">class</span><span style=3D"color:#000"> T </span><span style=3D"color:#6=
60">=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#008"=
>void</span><span style=3D"color:#660">&gt;</span><span style=3D"color:#000=
"> </span><span style=3D"color:#008">struct</span><span style=3D"color:#000=
"> equal_to</span><span style=3D"color:#660">;</span><span style=3D"color:#=
000"><br></span><span style=3D"color:#008">template</span><span style=3D"co=
lor:#660">&lt;</span><span style=3D"color:#008">class</span><span style=3D"=
color:#000"> T </span><span style=3D"color:#660">=3D</span><span style=3D"c=
olor:#000"> </span><span style=3D"color:#008">void</span><span style=3D"col=
or:#660">&gt;</span><span style=3D"color:#000"> </span><span style=3D"color=
:#008">struct</span><span style=3D"color:#000"> not_equal_to</span><span st=
yle=3D"color:#660">;</span><span style=3D"color:#000"><br></span><span styl=
e=3D"color:#008">template</span><span style=3D"color:#660">&lt;</span><span=
 style=3D"color:#008">class</span><span style=3D"color:#000"> T </span><spa=
n style=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span s=
tyle=3D"color:#008">void</span><span style=3D"color:#660">&gt;</span><span =
style=3D"color:#000"> </span><span style=3D"color:#008">struct</span><span =
style=3D"color:#000"> greater</span><span style=3D"color:#660">;</span><spa=
n style=3D"color:#000"><br></span><span style=3D"color:#008">template</span=
><span style=3D"color:#660">&lt;</span><span style=3D"color:#008">class</sp=
an><span style=3D"color:#000"> T </span><span style=3D"color:#660">=3D</spa=
n><span style=3D"color:#000"> </span><span style=3D"color:#008">void</span>=
<span style=3D"color:#660">&gt;</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#008">struct</span><span style=3D"color:#000"> less</spa=
n><span style=3D"color:#660">;</span><span style=3D"color:#000"><br></span>=
<span style=3D"color:#008">template</span><span style=3D"color:#660">&lt;</=
span><span style=3D"color:#008">class</span><span style=3D"color:#000"> T <=
/span><span style=3D"color:#660">=3D</span><span style=3D"color:#000"> </sp=
an><span style=3D"color:#008">void</span><span style=3D"color:#660">&gt;</s=
pan><span style=3D"color:#000"> </span><span style=3D"color:#008">struct</s=
pan><span style=3D"color:#000"> greater_equal</span><span style=3D"color:#6=
60">;</span><span style=3D"color:#000"><br></span><span style=3D"color:#008=
">template</span><span style=3D"color:#660">&lt;</span><span style=3D"color=
:#008">class</span><span style=3D"color:#000"> T </span><span style=3D"colo=
r:#660">=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#=
008">void</span><span style=3D"color:#660">&gt;</span><span style=3D"color:=
#000"> </span><span style=3D"color:#008">struct</span><span style=3D"color:=
#000"> less_equal</span><span style=3D"color:#660">;</span></div></code></d=
iv><span style=3D"font-size:8pt"><span style=3D"font-size:8pt"><span style=
=3D"font-size:8pt"><span style=3D"font-size:8pt"><span style=3D"font-size:8=
pt"><br></span></span></span></span></span><br style=3D"line-height:normal;=
text-align:-webkit-auto"></span><br>=D0=BF=D1=8F=D1=82=D0=BD=D0=B8=D1=86=D0=
=B0, 14 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 21:2=
8:58 UTC+4 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=
=BB=D1=8C Richard Hodges =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"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=
=3D"ltr"><div dir=3D"ltr"><br><br><div class=3D"gmail_quote"><div dir=3D"lt=
r">On Fri, 14 Sep 2018 at 15:55, &#39;Vlad from Moscow&#39; via ISO C++ Sta=
ndard - Future Proposals &lt;<a rel=3D"nofollow">std-pr...@isocpp.org</a>&g=
t; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0p=
x 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div d=
ir=3D"ltr">What about introducing algorithm adapters as for example for the=
 standard algorithm <b>std::find</b><div><b><br></b></div><div style=3D"bac=
kground-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style:s=
olid;border-width:1px"><code><div><span style=3D"color:rgb(0,0,0)">find_equ=
al_to<br>find_not_equal_to<br>find_greater<br>find_less<br></span></div></c=
ode></div></div></blockquote><div><br></div><div>Might it be more appropria=
te to provide something more composable?</div><div><br></div><div><div><fon=
t face=3D"monospace, monospace">#include &lt;iostream&gt;</font></div><div>=
<font face=3D"monospace, monospace">#include &lt;vector&gt;</font></div><di=
v><font face=3D"monospace, monospace">#include &lt;algorithm&gt;</font></di=
v><div><font face=3D"monospace, monospace">#include &lt;iterator&gt;</font>=
</div><div><font face=3D"monospace, monospace">#include &lt;functional&gt;<=
/font></div><div><font face=3D"monospace, monospace"><br></font></div><div>=
<font face=3D"monospace, monospace">template&lt;class Storage&gt;</font></d=
iv><div><font face=3D"monospace, monospace">struct is_less_than</font></div=
><div><font face=3D"monospace, monospace">{</font></div><div><font face=3D"=
monospace, monospace">=C2=A0 =C2=A0 constexpr is_less_than(Storage r) : r_(=
std::move(r)) {}</font></div><div><font face=3D"monospace, monospace"><br><=
/font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 template=
&lt;class L&gt;</font></div><div><font face=3D"monospace, monospace">=C2=A0=
 =C2=A0 constexpr bool operator()(L&amp;&amp; l) const</font></div><div><fo=
nt face=3D"monospace, monospace">=C2=A0 =C2=A0 {</font></div><div><font fac=
e=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 return std::less&lt;=
&gt;()(l, r_);</font></div><div><font face=3D"monospace, monospace">=C2=A0 =
=C2=A0 }</font></div><div><font face=3D"monospace, monospace"><br></font></=
div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 Storage r_;</fon=
t></div><div><font face=3D"monospace, monospace">};</font></div><div><font =
face=3D"monospace, monospace"><br></font></div><div><font face=3D"monospace=
, monospace">template&lt;class R&gt; is_less_than(R &amp;) -&gt; is_less_th=
an&lt;std::reference_<wbr>wrapper&lt;R&gt;&gt;;</font></div><div><font face=
=3D"monospace, monospace">template&lt;class R&gt; is_less_than(R &amp;&amp;=
) -&gt; is_less_than&lt;R&gt;;</font></div><div><font face=3D"monospace, mo=
nospace"><br></font></div><div><font face=3D"monospace, monospace"><br></fo=
nt></div><div><font face=3D"monospace, monospace">int main()</font></div><d=
iv><font face=3D"monospace, monospace">{</font></div><div><font face=3D"mon=
ospace, monospace">=C2=A0 =C2=A0 auto v =3D std::vector { 1, 2, 3, 4, 5, 6,=
 7, 8 };</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0=
=C2=A0</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 s=
td::remove_copy_if(begin(v), end(v),=C2=A0</font></div><div><font face=3D"m=
onospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::ostream_iterator&lt;i=
nt&gt;(<wbr>std::cout, &quot; &quot;),=C2=A0</font></div><div><font face=3D=
"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 is_less_than(5));</font>=
</div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 std::cout &lt;=
&lt; &#39;\n&#39;;</font></div><div><font face=3D"monospace, monospace"><br=
></font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 const =
int x =3D 6;</font></div><div><font face=3D"monospace, monospace">=C2=A0 =
=C2=A0 std::remove_copy_if(begin(v), end(v),=C2=A0</font></div><div><font f=
ace=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::ostream_itera=
tor&lt;int&gt;(<wbr>std::cout, &quot; &quot;),=C2=A0</font></div><div><font=
 face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 is_less_than(x))=
;</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 std::c=
out &lt;&lt; &#39;\n&#39;;</font></div><div><font face=3D"monospace, monosp=
ace"><br></font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=
=A0 int y =3D 4;</font></div><div><font face=3D"monospace, monospace">=C2=
=A0 =C2=A0 std::remove_copy_if(begin(v), end(v),=C2=A0</font></div><div><fo=
nt face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 std::ostream_i=
terator&lt;int&gt;(<wbr>std::cout, &quot; &quot;),=C2=A0</font></div><div><=
font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 is_less_than=
(y));</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 st=
d::cout &lt;&lt; &#39;\n&#39;;</font></div><div><font face=3D"monospace, mo=
nospace">}</font></div></div><div><br></div><div>expected output:</div><div=
><br></div><div><div>5 6 7 8=C2=A0</div><div>6 7 8=C2=A0</div><div>4 5 6 7 =
8=C2=A0</div><div><br></div></div><div><a href=3D"http://coliru.stacked-cro=
oked.com/a/e7bcec371fc95dfa" rel=3D"nofollow" target=3D"_blank" onmousedown=
=3D"this.href=3D&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fcoliru.sta=
cked-crooked.com%2Fa%2Fe7bcec371fc95dfa\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dA=
FQjCNGtcVSwJMJAixLGjypstjOa3QC10g&#39;;return true;" onclick=3D"this.href=
=3D&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fcoliru.stacked-crooked.=
com%2Fa%2Fe7bcec371fc95dfa\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGtcVSwJM=
JAixLGjypstjOa3QC10g&#39;;return true;">http://coliru.stacked-crooked.<wbr>=
com/a/e7bcec371fc95dfa</a><br></div><div><br></div><div>=C2=A0</div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div style=3D"b=
ackground-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style=
:solid;border-width:1px"><code><div><span style=3D"color:rgb(0,0,0)">find_g=
reater_equal<br>find_less_equal<br><br></span></div></code></div><div><br>T=
hey make code more readable and less complicated. Of course such adapters c=
an be introduced for other algorithms as for example <b>std::remove</b>.</d=
iv></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
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>.<br>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/a2779ac8-0c98-45c7-b0f3-4ab6a79ef1bf%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"nofollow" t=
arget=3D"_blank" onmousedown=3D"this.href=3D&#39;https://groups.google.com/=
a/isocpp.org/d/msgid/std-proposals/a2779ac8-0c98-45c7-b0f3-4ab6a79ef1bf%40i=
socpp.org?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" on=
click=3D"this.href=3D&#39;https://groups.google.com/a/isocpp.org/d/msgid/st=
d-proposals/a2779ac8-0c98-45c7-b0f3-4ab6a79ef1bf%40isocpp.org?utm_medium\x3=
demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/a2779ac8-0c98-45c7-<wbr>b0f3-=
4ab6a79ef1bf%40isocpp.org</a><wbr>.<br>
</blockquote></div></div></div></div></div>
</blockquote></div></div></blockquote></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; 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/860372fc-b857-4ed0-a1d7-9a86872ef9df%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/860372fc-b857-4ed0-a1d7-9a86872ef9df=
%40isocpp.org</a>.<br />

------=_Part_2707_1417043044.1537360323851--

------=_Part_2706_92495260.1537360323844--

.


Author: Nicolas Lesser <blitzrakete@gmail.com>
Date: Wed, 19 Sep 2018 14:39:10 +0200
Raw View
--0000000000003978a8057638b248
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Doesn't the Ranges TS basically render your proposal obsolete? It's even
more composable.

On Wed, Sep 19, 2018, 2:32 PM 'Vlad from Moscow' via ISO C++ Standard -
Future Proposals <std-proposals@isocpp.org> wrote:

> Here is a simple demonstrative program
>
> #include <iostream>
> #include <vector>
> #include <functional>
> #include <iterator>
> #include <algorithm>
> #include <ctime>
> #include <cstdlib>
>
>
> template <typename InputIterator, typename T>
> inline InputIterator find_equal_to( InputIterator first, InputIterator
> last, const T &value )
> {
>     return std::find( first, last, value );
> }
>
>
> template <typename InputIterator, typename T>
> inline InputIterator find_not_equal_to( InputIterator first, InputIterato=
r
> last, const T &value )
> {
>     using namespace std::placeholders;
>     return std::find_if( first, last, std::bind( std::not_equal_to<>(), _=
1
> , value ) );
> }
>
>
> template <typename InputIterator, typename T>
> inline InputIterator find_greater( InputIterator first, InputIterator las=
t
> , const T &value )
> {
>     using namespace std::placeholders;
>     return std::find_if( first, last, std::bind( std::greater<>(), _1,
> value ) );
> }
>
>
> template <typename InputIterator, typename T>
> inline InputIterator find_less( InputIterator first, InputIterator last,
> const T &value )
> {
>     using namespace std::placeholders;
>     return std::find_if( first, last, std::bind( std::less<>(), _1, value
> ) );
> }
>
>
> template <typename InputIterator, typename T>
> inline InputIterator find_greater_equal( InputIterator first,
> InputIterator last, const T &value )
> {
>     using namespace std::placeholders;
>     return std::find_if( first, last, std::bind( std::greater_equal<>(),
> _1, value ) );
> }
>
>
> template <typename InputIterator, typename T>
> inline InputIterator find_less_equal( InputIterator first, InputIterator
> last, const T &value )
> {
>     using namespace std::placeholders;
>     return std::find_if( first, last, std::bind( std::less_equal<>(), _1,
> value ) );
> }
>
>
> template <typename InputIterator, typename T>
> inline bool any_of_equal_to( InputIterator first, InputIterator last,
> const T &value )
> {
>     using namespace std::placeholders;
>     return std::any_of( first, last, std::bind( std::equal_to<>(), _1,
> value ) );
> }
>
>
> template <typename InputIterator, typename T>
> inline bool any_not_equal_to( InputIterator first, InputIterator last,
> const T &value )
> {
>     using namespace std::placeholders;
>     return std::any_of( first, last, std::bind( std::not_equal_to<>(), _1=
,
> value ) );
> }
>
>
> template <typename InputIterator, typename T>
> inline bool any_of_greater( InputIterator first, InputIterator last, cons=
t
> T &value )
> {
>     using namespace std::placeholders;
>     return std::any_of( first, last, std::bind( std::greater<>(), _1,
> value ) );
> }
>
>
> template <typename InputIterator, typename T>
> inline bool any_of_less( InputIterator first, InputIterator last, const T
> &value )
> {
>     using namespace std::placeholders;
>     return std::any_of( first, last, std::bind( std::less<>(), _1, value =
)
> );
> }
>
>
> template <typename InputIterator, typename T>
> inline bool any_of_greater_equal( InputIterator first, InputIterator last=
,
> const T &value )
> {
>     using namespace std::placeholders;
>     return std::any_of( first, last, std::bind( std::greater_equal<>(), _=
1
> , value ) );
> }
>
>
> template <typename InputIterator, typename T>
> inline bool any_of_less_equal( InputIterator first, InputIterator last,
> const T &value )
> {
>     using namespace std::placeholders;
>     return std::any_of( first, last, std::bind( std::less_equal<>(), _1,
> value ) );
> }
>
>
> int main()
> {
>     const size_t N =3D 10;
>     std::vector<unsigned int> v;
>     v.reserve( N );
>
>     std::srand( ( unsigned int )std::time( nullptr ) );
>
>     std::generate_n( std::back_inserter( v ), N, [] { return std::rand() =
%
> N; } );
>
>     for ( const auto &item : v ) std::cout << item << ' ';
>     std::cout << '\n';
>
>     unsigned int value =3D std::rand() % N;
>
>
>     if ( any_of_equal_to( std::begin( v ), std::end( v ), value ) )
>     {
>         std::cout << value << " is encountered at position "
>                   << std::distance( std::begin( v ), find_equal_to( std::
> begin( v ), std::end( v ), value ) )
>                   << '\n';
>     }
>     else
>     {
>         std::cout << value << " has not been found.\n";
>     }
>
>
>     if ( any_of_equal_to( std::begin( v ), std::end( v ), value ) )
>     {
>         std::cout << "A value not equal to " << value << " is encountered
> at position "
>                   << std::distance( std::begin( v ), find_not_equal_to(
> std::begin( v ), std::end( v ), value ) )
>                   << '\n';
>     }
>     else
>     {
>         std::cout << "A value not equal to " << value << " has not been
> found.\n";
>     }
>
>
>     if ( any_of_greater( std::begin( v ), std::end( v ), value ) )
>     {
>         std::cout << "A value greater than " << value << " is encountered
> at position "
>                   << std::distance( std::begin( v ), find_greater( std::
> begin( v ), std::end( v ), value ) )
>                   << '\n';
>     }
>     else
>     {
>         std::cout << "A value greater than " << value << " has not been
> found.\n";
>     }
>
>
>     if ( any_of_less( std::begin( v ), std::end( v ), value ) )
>     {
>         std::cout << "A value less than " << value << " is encountered at
> position "
>                   << std::distance( std::begin( v ), find_less( std::begi=
n
> ( v ), std::end( v ), value ) )
>                   << '\n';
>     }
>     else
>     {
>         std::cout << "A value less than " << value << " has not been
> found.\n";
>     }
>
>     if ( any_of_greater_equal( std::begin( v ), std::end( v ), value ) )
>     {
>         std::cout << "A value greater than or equal to " << value << " is
> encountered at position "
>                   << std::distance( std::begin( v ), find_greater_equal(
> std::begin( v ), std::end( v ), value ) )
>                   << '\n';
>     }
>     else
>     {
>         std::cout << "A value greater than or equal to " << value << "
> has not been found.\n";
>     }
>
>
>     if ( any_of_less_equal( std::begin( v ), std::end( v ), value ) )
>     {
>         std::cout << "A value less than or equal to " << value << " is
> encountered at position "
>                   << std::distance( std::begin( v ), find_less_equal( std
> ::begin( v ), std::end( v ), value ) )
>                   << '\n';
>     }
>     else
>     {
>         std::cout << "A value less than or equal to " << value << " has
> not been found.\n";
>     }
> }
>
> Its output might look like
>
> 6 9 0 2 8 1 2 8 3 4
> 1 is encountered at position 5
> A value not equal to 1 is encountered at position 0
> A value greater than 1 is encountered at position 0
> A value less than 1 is encountered at position 2
> A value greater than or equal to 1 is encountered at position 0
> A value less than or equal to 1 is encountered at position 2
>
>
>
> =D1=81=D1=83=D0=B1=D0=B1=D0=BE=D1=82=D0=B0, 15 =D1=81=D0=B5=D0=BD=D1=82=
=D1=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 12:26:40 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:
>>
>> There are already standard function object types in the C++ Standard
>>
>> template<class T =3D void> struct equal_to;
>> template<class T =3D void> struct not_equal_to;
>> template<class T =3D void> struct greater;
>> template<class T =3D void> struct less;
>> template<class T =3D void</spa
>>
>

--=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/CALmDwq23r1ydP08U2%2B%3D2v%3DE%2B%2BMCF4kUSHY0cA=
SpfLioOivYgxA%40mail.gmail.com.

--0000000000003978a8057638b248
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Doesn&#39;t the Ranges TS basically render your proposal =
obsolete? It&#39;s even more composable.</div><br><div class=3D"gmail_quote=
"><div dir=3D"ltr">On Wed, Sep 19, 2018, 2:32 PM &#39;Vlad from Moscow&#39;=
 via ISO C++ Standard - Future Proposals &lt;<a href=3D"mailto:std-proposal=
s@isocpp.org">std-proposals@isocpp.org</a>&gt; 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">Here is a simple demonstrative program<=
div><br></div><div><div class=3D"m_-7030065523105905212prettyprint" style=
=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,187);border-=
style:solid;border-width:1px;word-wrap:break-word"><code class=3D"m_-703006=
5523105905212prettyprint"><div class=3D"m_-7030065523105905212subprettyprin=
t"><span style=3D"color:#800" class=3D"m_-7030065523105905212styled-by-pret=
tify">#include</span><span style=3D"color:#000" class=3D"m_-703006552310590=
5212styled-by-prettify"> </span><span style=3D"color:#080" class=3D"m_-7030=
065523105905212styled-by-prettify">&lt;iostream&gt;</span><span style=3D"co=
lor:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br></span><sp=
an style=3D"color:#800" class=3D"m_-7030065523105905212styled-by-prettify">=
#include</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify"> </span><span style=3D"color:#080" class=3D"m_-7030065523=
105905212styled-by-prettify">&lt;vector&gt;</span><span style=3D"color:#000=
" class=3D"m_-7030065523105905212styled-by-prettify"><br></span><span style=
=3D"color:#800" class=3D"m_-7030065523105905212styled-by-prettify">#include=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"> </span><span style=3D"color:#080" class=3D"m_-703006552310590521=
2styled-by-prettify">&lt;functional&gt;</span><span style=3D"color:#000" cl=
ass=3D"m_-7030065523105905212styled-by-prettify"><br></span><span style=3D"=
color:#800" class=3D"m_-7030065523105905212styled-by-prettify">#include</sp=
an><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pret=
tify"> </span><span style=3D"color:#080" class=3D"m_-7030065523105905212sty=
led-by-prettify">&lt;iterator&gt;</span><span style=3D"color:#000" class=3D=
"m_-7030065523105905212styled-by-prettify"><br></span><span style=3D"color:=
#800" class=3D"m_-7030065523105905212styled-by-prettify">#include</span><sp=
an style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">=
 </span><span style=3D"color:#080" class=3D"m_-7030065523105905212styled-by=
-prettify">&lt;algorithm&gt;</span><span style=3D"color:#000" class=3D"m_-7=
030065523105905212styled-by-prettify"><br></span><span style=3D"color:#800"=
 class=3D"m_-7030065523105905212styled-by-prettify">#include</span><span st=
yle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </sp=
an><span style=3D"color:#080" class=3D"m_-7030065523105905212styled-by-pret=
tify">&lt;ctime&gt;</span><span style=3D"color:#000" class=3D"m_-7030065523=
105905212styled-by-prettify"><br></span><span style=3D"color:#800" class=3D=
"m_-7030065523105905212styled-by-prettify">#include</span><span style=3D"co=
lor:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span =
style=3D"color:#080" class=3D"m_-7030065523105905212styled-by-prettify">&lt=
;cstdlib&gt;</span><span style=3D"color:#000" class=3D"m_-70300655231059052=
12styled-by-prettify"><br><br><br></span><span style=3D"color:#008" class=
=3D"m_-7030065523105905212styled-by-prettify">template</span><span style=3D=
"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><sp=
an style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">=
&lt;</span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled=
-by-prettify">typename</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"> </span><span style=3D"color:#606" class=3D=
"m_-7030065523105905212styled-by-prettify">InputIterator</span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span>=
<span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettif=
y"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled=
-by-prettify">typename</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"> T</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">&gt;</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br></span><spa=
n style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">i=
nline</span><span style=3D"color:#000" class=3D"m_-7030065523105905212style=
d-by-prettify"> </span><span style=3D"color:#606" class=3D"m_-7030065523105=
905212styled-by-prettify">InputIterator</span><span style=3D"color:#000" cl=
ass=3D"m_-7030065523105905212styled-by-prettify"> find_equal_to</span><span=
 style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(<=
/span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-p=
rettify"> </span><span style=3D"color:#606" class=3D"m_-7030065523105905212=
styled-by-prettify">InputIterator</span><span style=3D"color:#000" class=3D=
"m_-7030065523105905212styled-by-prettify"> first</span><span style=3D"colo=
r:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span><span st=
yle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </sp=
an><span style=3D"color:#606" class=3D"m_-7030065523105905212styled-by-pret=
tify">InputIterator</span><span style=3D"color:#000" class=3D"m_-7030065523=
105905212styled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_=
-7030065523105905212styled-by-prettify">last</span><span style=3D"color:#66=
0" class=3D"m_-7030065523105905212styled-by-prettify">,</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettif=
y">const</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify"> T </span><span style=3D"color:#660" class=3D"m_-70300655=
23105905212styled-by-prettify">&amp;</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify">value </span><span style=3D"c=
olor:#660" class=3D"m_-7030065523105905212styled-by-prettify">)</span><span=
 style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><b=
r></span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-b=
y-prettify">{</span><span style=3D"color:#000" class=3D"m_-7030065523105905=
212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" =
class=3D"m_-7030065523105905212styled-by-prettify">return</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</sp=
an><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pret=
tify">::</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify">find</span><span style=3D"color:#660" class=3D"m_-7030065=
523105905212styled-by-prettify">(</span><span style=3D"color:#000" class=3D=
"m_-7030065523105905212styled-by-prettify"> first</span><span style=3D"colo=
r:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span><span st=
yle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </sp=
an><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pret=
tify">last</span><span style=3D"color:#660" class=3D"m_-7030065523105905212=
styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-70300655=
23105905212styled-by-prettify"> value </span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">);</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"> <br></span><sp=
an style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">=
}</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by=
-prettify"><br><br><br></span><span style=3D"color:#008" class=3D"m_-703006=
5523105905212styled-by-prettify">template</span><span style=3D"color:#000" =
class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"c=
olor:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;</span><s=
pan style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify"=
>typename</span><span style=3D"color:#000" class=3D"m_-7030065523105905212s=
tyled-by-prettify"> </span><span style=3D"color:#606" class=3D"m_-703006552=
3105905212styled-by-prettify">InputIterator</span><span style=3D"color:#660=
" class=3D"m_-7030065523105905212styled-by-prettify">,</span><span style=3D=
"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><sp=
an style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">=
typename</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify"> T</span><span style=3D"color:#660" class=3D"m_-703006552=
3105905212styled-by-prettify">&gt;</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"><br></span><span style=3D"col=
or:#008" class=3D"m_-7030065523105905212styled-by-prettify">inline</span><s=
pan style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"=
> </span><span style=3D"color:#606" class=3D"m_-7030065523105905212styled-b=
y-prettify">InputIterator</span><span style=3D"color:#000" class=3D"m_-7030=
065523105905212styled-by-prettify"> find_not_equal_to</span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</span><spa=
n style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> =
</span><span style=3D"color:#606" class=3D"m_-7030065523105905212styled-by-=
prettify">InputIterator</span><span style=3D"color:#000" class=3D"m_-703006=
5523105905212styled-by-prettify"> first</span><span style=3D"color:#660" cl=
ass=3D"m_-7030065523105905212styled-by-prettify">,</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span s=
tyle=3D"color:#606" class=3D"m_-7030065523105905212styled-by-prettify">Inpu=
tIterator</span><span style=3D"color:#000" class=3D"m_-7030065523105905212s=
tyled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-703006552=
3105905212styled-by-prettify">last</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">,</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span styl=
e=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">const</=
span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pr=
ettify"> T </span><span style=3D"color:#660" class=3D"m_-703006552310590521=
2styled-by-prettify">&amp;</span><span style=3D"color:#000" class=3D"m_-703=
0065523105905212styled-by-prettify">value </span><span style=3D"color:#660"=
 class=3D"m_-7030065523105905212styled-by-prettify">)</span><span style=3D"=
color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br></span><=
span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify=
">{</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-=
by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=3D"m=
_-7030065523105905212styled-by-prettify">using</span><span style=3D"color:#=
000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=
=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">namespac=
e</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by=
-prettify"> std</span><span style=3D"color:#660" class=3D"m_-70300655231059=
05212styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify">placeholders</span><span style=3D"colo=
r:#660" class=3D"m_-7030065523105905212styled-by-prettify">;</span><span st=
yle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=
=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=3D"m_-703006552310590=
5212styled-by-prettify">return</span><span style=3D"color:#000" class=3D"m_=
-7030065523105905212styled-by-prettify"> std</span><span style=3D"color:#66=
0" class=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">find_if<=
/span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-p=
rettify">(</span><span style=3D"color:#000" class=3D"m_-7030065523105905212=
styled-by-prettify"> first</span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">,</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color=
:#008" class=3D"m_-7030065523105905212styled-by-prettify">last</span><span =
style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</=
span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pr=
ettify"> std</span><span style=3D"color:#660" class=3D"m_-70300655231059052=
12styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-70300=
65523105905212styled-by-prettify">bind</span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</span><span=
 style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify">not_equal_to</span><span style=3D"color:#660" class=3D"m_-7030065=
523105905212styled-by-prettify">&lt;&gt;(),</span><span style=3D"color:#000=
" class=3D"m_-7030065523105905212styled-by-prettify"> _1</span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span>=
<span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettif=
y"> value </span><span style=3D"color:#660" class=3D"m_-7030065523105905212=
styled-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-70300655=
23105905212styled-by-prettify"> </span><span style=3D"color:#660" class=3D"=
m_-7030065523105905212styled-by-prettify">);</span><span style=3D"color:#00=
0" class=3D"m_-7030065523105905212styled-by-prettify"> <br></span><span sty=
le=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">}</spa=
n><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prett=
ify"><br><br><br></span><span style=3D"color:#008" class=3D"m_-703006552310=
5905212styled-by-prettify">template</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:=
#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;</span><span s=
tyle=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">type=
name</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled=
-by-prettify"> </span><span style=3D"color:#606" class=3D"m_-70300655231059=
05212styled-by-prettify">InputIterator</span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">,</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span st=
yle=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">typen=
ame</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-=
by-prettify"> T</span><span style=3D"color:#660" class=3D"m_-70300655231059=
05212styled-by-prettify">&gt;</span><span style=3D"color:#000" class=3D"m_-=
7030065523105905212styled-by-prettify"><br></span><span style=3D"color:#008=
" class=3D"m_-7030065523105905212styled-by-prettify">inline</span><span sty=
le=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </spa=
n><span style=3D"color:#606" class=3D"m_-7030065523105905212styled-by-prett=
ify">InputIterator</span><span style=3D"color:#000" class=3D"m_-70300655231=
05905212styled-by-prettify"> find_greater</span><span style=3D"color:#660" =
class=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"c=
olor:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span=
 style=3D"color:#606" class=3D"m_-7030065523105905212styled-by-prettify">In=
putIterator</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"> first</span><span style=3D"color:#660" class=3D"m_-70=
30065523105905212styled-by-prettify">,</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"colo=
r:#606" class=3D"m_-7030065523105905212styled-by-prettify">InputIterator</s=
pan><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pre=
ttify"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905212st=
yled-by-prettify">last</span><span style=3D"color:#660" class=3D"m_-7030065=
523105905212styled-by-prettify">,</span><span style=3D"color:#000" class=3D=
"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:#00=
8" class=3D"m_-7030065523105905212styled-by-prettify">const</span><span sty=
le=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> T </s=
pan><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pre=
ttify">&amp;</span><span style=3D"color:#000" class=3D"m_-70300655231059052=
12styled-by-prettify">value </span><span style=3D"color:#660" class=3D"m_-7=
030065523105905212styled-by-prettify">)</span><span style=3D"color:#000" cl=
ass=3D"m_-7030065523105905212styled-by-prettify"><br></span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">{</span><spa=
n style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><=
br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=3D"m_-703006552310=
5905212styled-by-prettify">using</span><span style=3D"color:#000" class=3D"=
m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:#008=
" class=3D"m_-7030065523105905212styled-by-prettify">namespace</span><span =
style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> st=
d</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by=
-prettify">::</span><span style=3D"color:#000" class=3D"m_-7030065523105905=
212styled-by-prettify">placeholders</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">;</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 =
</span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-=
prettify">return</span><span style=3D"color:#000" class=3D"m_-7030065523105=
905212styled-by-prettify"> std</span><span style=3D"color:#660" class=3D"m_=
-7030065523105905212styled-by-prettify">::</span><span style=3D"color:#000"=
 class=3D"m_-7030065523105905212styled-by-prettify">find_if</span><span sty=
le=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</spa=
n><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prett=
ify"> first</span><span style=3D"color:#660" class=3D"m_-703006552310590521=
2styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"> </span><span style=3D"color:#008" class=3D=
"m_-7030065523105905212styled-by-prettify">last</span><span style=3D"color:=
#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span><span styl=
e=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</s=
pan><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pre=
ttify">::</span><span style=3D"color:#000" class=3D"m_-7030065523105905212s=
tyled-by-prettify">bind</span><span style=3D"color:#660" class=3D"m_-703006=
5523105905212styled-by-prettify">(</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"col=
or:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><span =
style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">gre=
ater</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled=
-by-prettify">&lt;&gt;(),</span><span style=3D"color:#000" class=3D"m_-7030=
065523105905212styled-by-prettify"> _1</span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">,</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> value </span><s=
pan style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify"=
>)</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-b=
y-prettify"> </span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">);</span><span style=3D"color:#000" class=3D"m_-7030=
065523105905212styled-by-prettify"> <br></span><span style=3D"color:#660" c=
lass=3D"m_-7030065523105905212styled-by-prettify">}</span><span style=3D"co=
lor:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br><br><br></=
span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pr=
ettify">template</span><span style=3D"color:#000" class=3D"m_-7030065523105=
905212styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-70=
30065523105905212styled-by-prettify">&lt;</span><span style=3D"color:#008" =
class=3D"m_-7030065523105905212styled-by-prettify">typename</span><span sty=
le=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </spa=
n><span style=3D"color:#606" class=3D"m_-7030065523105905212styled-by-prett=
ify">InputIterator</span><span style=3D"color:#660" class=3D"m_-70300655231=
05905212styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-=
7030065523105905212styled-by-prettify"> </span><span style=3D"color:#008" c=
lass=3D"m_-7030065523105905212styled-by-prettify">typename</span><span styl=
e=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> T</spa=
n><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prett=
ify">&gt;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212s=
tyled-by-prettify"><br></span><span style=3D"color:#008" class=3D"m_-703006=
5523105905212styled-by-prettify">inline</span><span style=3D"color:#000" cl=
ass=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"col=
or:#606" class=3D"m_-7030065523105905212styled-by-prettify">InputIterator</=
span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pr=
ettify"> find_less</span><span style=3D"color:#660" class=3D"m_-70300655231=
05905212styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-=
7030065523105905212styled-by-prettify"> </span><span style=3D"color:#606" c=
lass=3D"m_-7030065523105905212styled-by-prettify">InputIterator</span><span=
 style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> f=
irst</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled=
-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-70300655231059=
05212styled-by-prettify"> </span><span style=3D"color:#606" class=3D"m_-703=
0065523105905212styled-by-prettify">InputIterator</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span st=
yle=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">last<=
/span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-p=
rettify">,</span><span style=3D"color:#000" class=3D"m_-7030065523105905212=
styled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-70300655=
23105905212styled-by-prettify">const</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> T </span><span style=3D"colo=
r:#660" class=3D"m_-7030065523105905212styled-by-prettify">&amp;</span><spa=
n style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">v=
alue </span><span style=3D"color:#660" class=3D"m_-7030065523105905212style=
d-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-7030065523105=
905212styled-by-prettify"><br></span><span style=3D"color:#660" class=3D"m_=
-7030065523105905212styled-by-prettify">{</span><span style=3D"color:#000" =
class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span=
><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pretti=
fy">using</span><span style=3D"color:#000" class=3D"m_-7030065523105905212s=
tyled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-703006552=
3105905212styled-by-prettify">namespace</span><span style=3D"color:#000" cl=
ass=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><sp=
an style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">=
placeholders</span><span style=3D"color:#660" class=3D"m_-70300655231059052=
12styled-by-prettify">;</span><span style=3D"color:#000" class=3D"m_-703006=
5523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"co=
lor:#008" class=3D"m_-7030065523105905212styled-by-prettify">return</span><=
span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify=
"> std</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styl=
ed-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-70300655231=
05905212styled-by-prettify">find_if</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> first</span><span=
 style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">,<=
/span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-p=
rettify"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905212=
styled-by-prettify">last</span><span style=3D"color:#660" class=3D"m_-70300=
65523105905212styled-by-prettify">,</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"col=
or:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><span =
style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">bin=
d</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by=
-prettify">(</span><span style=3D"color:#000" class=3D"m_-70300655231059052=
12styled-by-prettify"> std</span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">::</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">less</span><span style=3D"c=
olor:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&gt;(),</=
span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pr=
ettify"> _1</span><span style=3D"color:#660" class=3D"m_-703006552310590521=
2styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"> value </span><span style=3D"color:#660" cl=
ass=3D"m_-7030065523105905212styled-by-prettify">)</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span s=
tyle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">);</=
span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pr=
ettify"> <br></span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">}</span><span style=3D"color:#000" class=3D"m_-70300=
65523105905212styled-by-prettify"><br><br><br></span><span style=3D"color:#=
008" class=3D"m_-7030065523105905212styled-by-prettify">template</span><spa=
n style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> =
</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-=
prettify">&lt;</span><span style=3D"color:#008" class=3D"m_-703006552310590=
5212styled-by-prettify">typename</span><span style=3D"color:#000" class=3D"=
m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:#606=
" class=3D"m_-7030065523105905212styled-by-prettify">InputIterator</span><s=
pan style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify"=
>,</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-b=
y-prettify"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905=
212styled-by-prettify">typename</span><span style=3D"color:#000" class=3D"m=
_-7030065523105905212styled-by-prettify"> T</span><span style=3D"color:#660=
" class=3D"m_-7030065523105905212styled-by-prettify">&gt;</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br></sp=
an><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pret=
tify">inline</span><span style=3D"color:#000" class=3D"m_-70300655231059052=
12styled-by-prettify"> </span><span style=3D"color:#606" class=3D"m_-703006=
5523105905212styled-by-prettify">InputIterator</span><span style=3D"color:#=
000" class=3D"m_-7030065523105905212styled-by-prettify"> find_greater_equal=
</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-=
prettify">(</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"> </span><span style=3D"color:#606" class=3D"m_-7030065=
523105905212styled-by-prettify">InputIterator</span><span style=3D"color:#0=
00" class=3D"m_-7030065523105905212styled-by-prettify"> first</span><span s=
tyle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</s=
pan><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pre=
ttify"> </span><span style=3D"color:#606" class=3D"m_-7030065523105905212st=
yled-by-prettify">InputIterator</span><span style=3D"color:#000" class=3D"m=
_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:#008"=
 class=3D"m_-7030065523105905212styled-by-prettify">last</span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span>=
<span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettif=
y"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled=
-by-prettify">const</span><span style=3D"color:#000" class=3D"m_-7030065523=
105905212styled-by-prettify"> T </span><span style=3D"color:#660" class=3D"=
m_-7030065523105905212styled-by-prettify">&amp;</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify">value </span><span=
 style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">)<=
/span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-p=
rettify"><br></span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">{</span><span style=3D"color:#000" class=3D"m_-70300=
65523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"c=
olor:#008" class=3D"m_-7030065523105905212styled-by-prettify">using</span><=
span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify=
"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-=
by-prettify">namespace</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"> std</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=3D"color=
:#000" class=3D"m_-7030065523105905212styled-by-prettify">placeholders</spa=
n><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prett=
ify">;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styl=
ed-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=
=3D"m_-7030065523105905212styled-by-prettify">return</span><span style=3D"c=
olor:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</span><s=
pan style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify"=
>::</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-=
by-prettify">find_if</span><span style=3D"color:#660" class=3D"m_-703006552=
3105905212styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m=
_-7030065523105905212styled-by-prettify"> first</span><span style=3D"color:=
#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span><span styl=
e=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span=
><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pretti=
fy">last</span><span style=3D"color:#660" class=3D"m_-7030065523105905212st=
yled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-7030065523=
105905212styled-by-prettify"> std</span><span style=3D"color:#660" class=3D=
"m_-7030065523105905212styled-by-prettify">::</span><span style=3D"color:#0=
00" class=3D"m_-7030065523105905212styled-by-prettify">bind</span><span sty=
le=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</spa=
n><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prett=
ify"> std</span><span style=3D"color:#660" class=3D"m_-7030065523105905212s=
tyled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-70300655=
23105905212styled-by-prettify">greater_equal</span><span style=3D"color:#66=
0" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&gt;(),</span><sp=
an style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">=
 _1</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-=
by-prettify">,</span><span style=3D"color:#000" class=3D"m_-703006552310590=
5212styled-by-prettify"> value </span><span style=3D"color:#660" class=3D"m=
_-7030065523105905212styled-by-prettify">)</span><span style=3D"color:#000"=
 class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">);</span><sp=
an style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">=
 <br></span><span style=3D"color:#660" class=3D"m_-7030065523105905212style=
d-by-prettify">}</span><span style=3D"color:#000" class=3D"m_-7030065523105=
905212styled-by-prettify"><br><br><br></span><span style=3D"color:#008" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">template</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">&lt;</span><span style=3D"color:#008" class=3D"m_-7030065523105905212sty=
led-by-prettify">typename</span><span style=3D"color:#000" class=3D"m_-7030=
065523105905212styled-by-prettify"> </span><span style=3D"color:#606" class=
=3D"m_-7030065523105905212styled-by-prettify">InputIterator</span><span sty=
le=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</spa=
n><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prett=
ify"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905212styl=
ed-by-prettify">typename</span><span style=3D"color:#000" class=3D"m_-70300=
65523105905212styled-by-prettify"> T</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">&gt;</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br></span><spa=
n style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">i=
nline</span><span style=3D"color:#000" class=3D"m_-7030065523105905212style=
d-by-prettify"> </span><span style=3D"color:#606" class=3D"m_-7030065523105=
905212styled-by-prettify">InputIterator</span><span style=3D"color:#000" cl=
ass=3D"m_-7030065523105905212styled-by-prettify"> find_less_equal</span><sp=
an style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">=
(</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by=
-prettify"> </span><span style=3D"color:#606" class=3D"m_-70300655231059052=
12styled-by-prettify">InputIterator</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> first</span><span style=3D"c=
olor:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span><span=
 style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> <=
/span><span style=3D"color:#606" class=3D"m_-7030065523105905212styled-by-p=
rettify">InputIterator</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"> </span><span style=3D"color:#008" class=3D=
"m_-7030065523105905212styled-by-prettify">last</span><span style=3D"color:=
#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span><span styl=
e=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span=
><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pretti=
fy">const</span><span style=3D"color:#000" class=3D"m_-7030065523105905212s=
tyled-by-prettify"> T </span><span style=3D"color:#660" class=3D"m_-7030065=
523105905212styled-by-prettify">&amp;</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify">value </span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">)</span><spa=
n style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><=
br></span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-=
by-prettify">{</span><span style=3D"color:#000" class=3D"m_-703006552310590=
5212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008"=
 class=3D"m_-7030065523105905212styled-by-prettify">using</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettif=
y">namespace</span><span style=3D"color:#000" class=3D"m_-70300655231059052=
12styled-by-prettify"> std</span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">::</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">placeholders</span><span st=
yle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">;</sp=
an><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pret=
tify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=3D"m_-70300=
65523105905212styled-by-prettify">return</span><span style=3D"color:#000" c=
lass=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D=
"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><s=
pan style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"=
>find_if</span><span style=3D"color:#660" class=3D"m_-7030065523105905212st=
yled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-7030065523=
105905212styled-by-prettify"> first</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">,</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span styl=
e=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">last</s=
pan><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pre=
ttify">,</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify"> std</span><span style=3D"color:#660" class=3D"m_-7030065=
523105905212styled-by-prettify">::</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify">bind</span><span style=3D"col=
or:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</span><span s=
tyle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std=
</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-=
prettify">::</span><span style=3D"color:#000" class=3D"m_-70300655231059052=
12styled-by-prettify">less_equal</span><span style=3D"color:#660" class=3D"=
m_-7030065523105905212styled-by-prettify">&lt;&gt;(),</span><span style=3D"=
color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> _1</span><s=
pan style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify"=
>,</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-b=
y-prettify"> value </span><span style=3D"color:#660" class=3D"m_-7030065523=
105905212styled-by-prettify">)</span><span style=3D"color:#000" class=3D"m_=
-7030065523105905212styled-by-prettify"> </span><span style=3D"color:#660" =
class=3D"m_-7030065523105905212styled-by-prettify">);</span><span style=3D"=
color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> <br></span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">}</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled=
-by-prettify"><br><br><br></span><span style=3D"color:#008" class=3D"m_-703=
0065523105905212styled-by-prettify">template</span><span style=3D"color:#00=
0" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;</sp=
an><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pret=
tify">typename</span><span style=3D"color:#000" class=3D"m_-703006552310590=
5212styled-by-prettify"> </span><span style=3D"color:#606" class=3D"m_-7030=
065523105905212styled-by-prettify">InputIterator</span><span style=3D"color=
:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span><span sty=
le=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </spa=
n><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prett=
ify">typename</span><span style=3D"color:#000" class=3D"m_-7030065523105905=
212styled-by-prettify"> T</span><span style=3D"color:#660" class=3D"m_-7030=
065523105905212styled-by-prettify">&gt;</span><span style=3D"color:#000" cl=
ass=3D"m_-7030065523105905212styled-by-prettify"><br></span><span style=3D"=
color:#008" class=3D"m_-7030065523105905212styled-by-prettify">inline</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905212style=
d-by-prettify">bool</span><span style=3D"color:#000" class=3D"m_-7030065523=
105905212styled-by-prettify"> any_of_equal_to</span><span style=3D"color:#6=
60" class=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#606" class=3D"m_-7030065523105905212styled-by-prettif=
y">InputIterator</span><span style=3D"color:#000" class=3D"m_-7030065523105=
905212styled-by-prettify"> first</span><span style=3D"color:#660" class=3D"=
m_-7030065523105905212styled-by-prettify">,</span><span style=3D"color:#000=
" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D=
"color:#606" class=3D"m_-7030065523105905212styled-by-prettify">InputIterat=
or</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-b=
y-prettify"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905=
212styled-by-prettify">last</span><span style=3D"color:#660" class=3D"m_-70=
30065523105905212styled-by-prettify">,</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"colo=
r:#008" class=3D"m_-7030065523105905212styled-by-prettify">const</span><spa=
n style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> =
T </span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-b=
y-prettify">&amp;</span><span style=3D"color:#000" class=3D"m_-703006552310=
5905212styled-by-prettify">value </span><span style=3D"color:#660" class=3D=
"m_-7030065523105905212styled-by-prettify">)</span><span style=3D"color:#00=
0" class=3D"m_-7030065523105905212styled-by-prettify"><br></span><span styl=
e=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">{</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=3D"m_-7030065=
523105905212styled-by-prettify">using</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color=
:#008" class=3D"m_-7030065523105905212styled-by-prettify">namespace</span><=
span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify=
"> std</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styl=
ed-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-70300655231=
05905212styled-by-prettify">placeholders</span><span style=3D"color:#660" c=
lass=3D"m_-7030065523105905212styled-by-prettify">;</span><span style=3D"co=
lor:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=
=A0 </span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled=
-by-prettify">return</span><span style=3D"color:#000" class=3D"m_-703006552=
3105905212styled-by-prettify"> std</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=3D"color=
:#000" class=3D"m_-7030065523105905212styled-by-prettify">any_of</span><spa=
n style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"> first</span><span style=3D"color:#660" class=3D"m_-7030065523105=
905212styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify"> </span><span style=3D"color:#008" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">last</span><span style=3D"c=
olor:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span><span=
 style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> s=
td</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-b=
y-prettify">::</span><span style=3D"color:#000" class=3D"m_-703006552310590=
5212styled-by-prettify">bind</span><span style=3D"color:#660" class=3D"m_-7=
030065523105905212styled-by-prettify">(</span><span style=3D"color:#000" cl=
ass=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><sp=
an style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">=
equal_to</span><span style=3D"color:#660" class=3D"m_-7030065523105905212st=
yled-by-prettify">&lt;&gt;(),</span><span style=3D"color:#000" class=3D"m_-=
7030065523105905212styled-by-prettify"> _1</span><span style=3D"color:#660"=
 class=3D"m_-7030065523105905212styled-by-prettify">,</span><span style=3D"=
color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> value </spa=
n><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prett=
ify">)</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styl=
ed-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-703006552310=
5905212styled-by-prettify">);</span><span style=3D"color:#000" class=3D"m_-=
7030065523105905212styled-by-prettify"> <br></span><span style=3D"color:#66=
0" class=3D"m_-7030065523105905212styled-by-prettify">}</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br><br>=
<br></span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled=
-by-prettify">template</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"> </span><span style=3D"color:#660" class=3D=
"m_-7030065523105905212styled-by-prettify">&lt;</span><span style=3D"color:=
#008" class=3D"m_-7030065523105905212styled-by-prettify">typename</span><sp=
an style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">=
 </span><span style=3D"color:#606" class=3D"m_-7030065523105905212styled-by=
-prettify">InputIterator</span><span style=3D"color:#660" class=3D"m_-70300=
65523105905212styled-by-prettify">,</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:=
#008" class=3D"m_-7030065523105905212styled-by-prettify">typename</span><sp=
an style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">=
 T</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-b=
y-prettify">&gt;</span><span style=3D"color:#000" class=3D"m_-7030065523105=
905212styled-by-prettify"><br></span><span style=3D"color:#008" class=3D"m_=
-7030065523105905212styled-by-prettify">inline</span><span style=3D"color:#=
000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=
=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">bool</sp=
an><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pret=
tify"> any_not_equal_to</span><span style=3D"color:#660" class=3D"m_-703006=
5523105905212styled-by-prettify">(</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:=
#606" class=3D"m_-7030065523105905212styled-by-prettify">InputIterator</spa=
n><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prett=
ify"> first</span><span style=3D"color:#660" class=3D"m_-703006552310590521=
2styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"> </span><span style=3D"color:#606" class=3D=
"m_-7030065523105905212styled-by-prettify">InputIterator</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettif=
y">last</span><span style=3D"color:#660" class=3D"m_-7030065523105905212sty=
led-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-70300655231=
05905212styled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-=
7030065523105905212styled-by-prettify">const</span><span style=3D"color:#00=
0" class=3D"m_-7030065523105905212styled-by-prettify"> T </span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&amp;</s=
pan><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pre=
ttify">value </span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-70300=
65523105905212styled-by-prettify"><br></span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">{</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=
=A0 </span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled=
-by-prettify">using</span><span style=3D"color:#000" class=3D"m_-7030065523=
105905212styled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_=
-7030065523105905212styled-by-prettify">namespace</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</span><span=
 style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify">placeholders</span><span style=3D"color:#660" class=3D"m_-7030065=
523105905212styled-by-prettify">;</span><span style=3D"color:#000" class=3D=
"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span s=
tyle=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">retu=
rn</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-b=
y-prettify"> std</span><span style=3D"color:#660" class=3D"m_-7030065523105=
905212styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-7=
030065523105905212styled-by-prettify">any_of</span><span style=3D"color:#66=
0" class=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> first</=
span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pr=
ettify">,</span><span style=3D"color:#000" class=3D"m_-7030065523105905212s=
tyled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-703006552=
3105905212styled-by-prettify">last</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">,</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</span><span s=
tyle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</=
span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pr=
ettify">bind</span><span style=3D"color:#660" class=3D"m_-70300655231059052=
12styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-703006=
5523105905212styled-by-prettify"> std</span><span style=3D"color:#660" clas=
s=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify">not_equal_to</sp=
an><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pret=
tify">&lt;&gt;(),</span><span style=3D"color:#000" class=3D"m_-703006552310=
5905212styled-by-prettify"> _1</span><span style=3D"color:#660" class=3D"m_=
-7030065523105905212styled-by-prettify">,</span><span style=3D"color:#000" =
class=3D"m_-7030065523105905212styled-by-prettify"> value </span><span styl=
e=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">)</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy"> </span><span style=3D"color:#660" class=3D"m_-7030065523105905212style=
d-by-prettify">);</span><span style=3D"color:#000" class=3D"m_-703006552310=
5905212styled-by-prettify"> <br></span><span style=3D"color:#660" class=3D"=
m_-7030065523105905212styled-by-prettify">}</span><span style=3D"color:#000=
" class=3D"m_-7030065523105905212styled-by-prettify"><br><br><br></span><sp=
an style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">=
template</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-7030065523=
105905212styled-by-prettify">&lt;</span><span style=3D"color:#008" class=3D=
"m_-7030065523105905212styled-by-prettify">typename</span><span style=3D"co=
lor:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span =
style=3D"color:#606" class=3D"m_-7030065523105905212styled-by-prettify">Inp=
utIterator</span><span style=3D"color:#660" class=3D"m_-7030065523105905212=
styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-70300655=
23105905212styled-by-prettify"> </span><span style=3D"color:#008" class=3D"=
m_-7030065523105905212styled-by-prettify">typename</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"> T</span><span =
style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&gt=
;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by=
-prettify"><br></span><span style=3D"color:#008" class=3D"m_-70300655231059=
05212styled-by-prettify">inline</span><span style=3D"color:#000" class=3D"m=
_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:#008"=
 class=3D"m_-7030065523105905212styled-by-prettify">bool</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> any_of_=
greater</span><span style=3D"color:#660" class=3D"m_-7030065523105905212sty=
led-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-70300655231=
05905212styled-by-prettify"> </span><span style=3D"color:#606" class=3D"m_-=
7030065523105905212styled-by-prettify">InputIterator</span><span style=3D"c=
olor:#000" class=3D"m_-7030065523105905212styled-by-prettify"> first</span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">,</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled=
-by-prettify"> </span><span style=3D"color:#606" class=3D"m_-70300655231059=
05212styled-by-prettify">InputIterator</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"colo=
r:#008" class=3D"m_-7030065523105905212styled-by-prettify">last</span><span=
 style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">,<=
/span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-p=
rettify"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905212=
styled-by-prettify">const</span><span style=3D"color:#000" class=3D"m_-7030=
065523105905212styled-by-prettify"> T </span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">&amp;</span><span style=3D"=
color:#000" class=3D"m_-7030065523105905212styled-by-prettify">value </span=
><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pretti=
fy">)</span><span style=3D"color:#000" class=3D"m_-7030065523105905212style=
d-by-prettify"><br></span><span style=3D"color:#660" class=3D"m_-7030065523=
105905212styled-by-prettify">{</span><span style=3D"color:#000" class=3D"m_=
-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span styl=
e=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">using</=
span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pr=
ettify"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905212s=
tyled-by-prettify">namespace</span><span style=3D"color:#000" class=3D"m_-7=
030065523105905212styled-by-prettify"> std</span><span style=3D"color:#660"=
 class=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=3D=
"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">placeholder=
s</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by=
-prettify">;</span><span style=3D"color:#000" class=3D"m_-70300655231059052=
12styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" c=
lass=3D"m_-7030065523105905212styled-by-prettify">return</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</sp=
an><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pret=
tify">::</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify">any_of</span><span style=3D"color:#660" class=3D"m_-70300=
65523105905212styled-by-prettify">(</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> first</span><span style=3D"c=
olor:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span><span=
 style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> <=
/span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-p=
rettify">last</span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-70300=
65523105905212styled-by-prettify"> std</span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify">bind</span><spa=
n style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"> std</span><span style=3D"color:#660" class=3D"m_-703006552310590=
5212styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-703=
0065523105905212styled-by-prettify">greater</span><span style=3D"color:#660=
" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&gt;(),</span><spa=
n style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> =
_1</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-b=
y-prettify">,</span><span style=3D"color:#000" class=3D"m_-7030065523105905=
212styled-by-prettify"> value </span><span style=3D"color:#660" class=3D"m_=
-7030065523105905212styled-by-prettify">)</span><span style=3D"color:#000" =
class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"c=
olor:#660" class=3D"m_-7030065523105905212styled-by-prettify">);</span><spa=
n style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> =
<br></span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled=
-by-prettify">}</span><span style=3D"color:#000" class=3D"m_-70300655231059=
05212styled-by-prettify"><br><br><br></span><span style=3D"color:#008" clas=
s=3D"m_-7030065523105905212styled-by-prettify">template</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">&lt;</span><span style=3D"color:#008" class=3D"m_-7030065523105905212sty=
led-by-prettify">typename</span><span style=3D"color:#000" class=3D"m_-7030=
065523105905212styled-by-prettify"> </span><span style=3D"color:#606" class=
=3D"m_-7030065523105905212styled-by-prettify">InputIterator</span><span sty=
le=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</spa=
n><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prett=
ify"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905212styl=
ed-by-prettify">typename</span><span style=3D"color:#000" class=3D"m_-70300=
65523105905212styled-by-prettify"> T</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">&gt;</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br></span><spa=
n style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">i=
nline</span><span style=3D"color:#000" class=3D"m_-7030065523105905212style=
d-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-7030065523105=
905212styled-by-prettify">bool</span><span style=3D"color:#000" class=3D"m_=
-7030065523105905212styled-by-prettify"> any_of_less</span><span style=3D"c=
olor:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</span><span=
 style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> <=
/span><span style=3D"color:#606" class=3D"m_-7030065523105905212styled-by-p=
rettify">InputIterator</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"> first</span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">,</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span st=
yle=3D"color:#606" class=3D"m_-7030065523105905212styled-by-prettify">Input=
Iterator</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-7030065523=
105905212styled-by-prettify">last</span><span style=3D"color:#660" class=3D=
"m_-7030065523105905212styled-by-prettify">,</span><span style=3D"color:#00=
0" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=
=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">const</s=
pan><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pre=
ttify"> T </span><span style=3D"color:#660" class=3D"m_-7030065523105905212=
styled-by-prettify">&amp;</span><span style=3D"color:#000" class=3D"m_-7030=
065523105905212styled-by-prettify">value </span><span style=3D"color:#660" =
class=3D"m_-7030065523105905212styled-by-prettify">)</span><span style=3D"c=
olor:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br></span><s=
pan style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify"=
>{</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-b=
y-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=3D"m_=
-7030065523105905212styled-by-prettify">using</span><span style=3D"color:#0=
00" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=
=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">namespac=
e</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by=
-prettify"> std</span><span style=3D"color:#660" class=3D"m_-70300655231059=
05212styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify">placeholders</span><span style=3D"colo=
r:#660" class=3D"m_-7030065523105905212styled-by-prettify">;</span><span st=
yle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=
=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=3D"m_-703006552310590=
5212styled-by-prettify">return</span><span style=3D"color:#000" class=3D"m_=
-7030065523105905212styled-by-prettify"> std</span><span style=3D"color:#66=
0" class=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">any_of</=
span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pr=
ettify">(</span><span style=3D"color:#000" class=3D"m_-7030065523105905212s=
tyled-by-prettify"> first</span><span style=3D"color:#660" class=3D"m_-7030=
065523105905212styled-by-prettify">,</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:=
#008" class=3D"m_-7030065523105905212styled-by-prettify">last</span><span s=
tyle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</s=
pan><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pre=
ttify"> std</span><span style=3D"color:#660" class=3D"m_-703006552310590521=
2styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-703006=
5523105905212styled-by-prettify">bind</span><span style=3D"color:#660" clas=
s=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"color=
:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</span><span =
style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::<=
/span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-p=
rettify">less</span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">&lt;&gt;(),</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> _1</span><span style=3D"colo=
r:#660" class=3D"m_-7030065523105905212styled-by-prettify">,</span><span st=
yle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> valu=
e </span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-b=
y-prettify">)</span><span style=3D"color:#000" class=3D"m_-7030065523105905=
212styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-70300=
65523105905212styled-by-prettify">);</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> <br></span><span style=3D"co=
lor:#660" class=3D"m_-7030065523105905212styled-by-prettify">}</span><span =
style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br=
><br><br></span><span style=3D"color:#008" class=3D"m_-7030065523105905212s=
tyled-by-prettify">template</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify"> </span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">&lt;</span><span style=3D"c=
olor:#008" class=3D"m_-7030065523105905212styled-by-prettify">typename</spa=
n><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prett=
ify"> </span><span style=3D"color:#606" class=3D"m_-7030065523105905212styl=
ed-by-prettify">InputIterator</span><span style=3D"color:#660" class=3D"m_-=
7030065523105905212styled-by-prettify">,</span><span style=3D"color:#000" c=
lass=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"co=
lor:#008" class=3D"m_-7030065523105905212styled-by-prettify">typename</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy"> T</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styl=
ed-by-prettify">&gt;</span><span style=3D"color:#000" class=3D"m_-703006552=
3105905212styled-by-prettify"><br></span><span style=3D"color:#008" class=
=3D"m_-7030065523105905212styled-by-prettify">inline</span><span style=3D"c=
olor:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span=
 style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">bo=
ol</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-b=
y-prettify"> any_of_greater_equal</span><span style=3D"color:#660" class=3D=
"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"color:#00=
0" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=
=3D"color:#606" class=3D"m_-7030065523105905212styled-by-prettify">InputIte=
rator</span><span style=3D"color:#000" class=3D"m_-7030065523105905212style=
d-by-prettify"> first</span><span style=3D"color:#660" class=3D"m_-70300655=
23105905212styled-by-prettify">,</span><span style=3D"color:#000" class=3D"=
m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:#606=
" class=3D"m_-7030065523105905212styled-by-prettify">InputIterator</span><s=
pan style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"=
> </span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-b=
y-prettify">last</span><span style=3D"color:#660" class=3D"m_-7030065523105=
905212styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify"> </span><span style=3D"color:#008" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">const</span><span style=3D"=
color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> T </span><s=
pan style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify"=
>&amp;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styl=
ed-by-prettify">value </span><span style=3D"color:#660" class=3D"m_-7030065=
523105905212styled-by-prettify">)</span><span style=3D"color:#000" class=3D=
"m_-7030065523105905212styled-by-prettify"><br></span><span style=3D"color:=
#660" class=3D"m_-7030065523105905212styled-by-prettify">{</span><span styl=
e=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#008" class=3D"m_-703006552310590521=
2styled-by-prettify">using</span><span style=3D"color:#000" class=3D"m_-703=
0065523105905212styled-by-prettify"> </span><span style=3D"color:#008" clas=
s=3D"m_-7030065523105905212styled-by-prettify">namespace</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</sp=
an><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pret=
tify">::</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify">placeholders</span><span style=3D"color:#660" class=3D"m_=
-7030065523105905212styled-by-prettify">;</span><span style=3D"color:#000" =
class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span=
><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pretti=
fy">return</span><span style=3D"color:#000" class=3D"m_-7030065523105905212=
styled-by-prettify"> std</span><span style=3D"color:#660" class=3D"m_-70300=
65523105905212styled-by-prettify">::</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify">any_of</span><span style=3D"c=
olor:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</span><span=
 style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> f=
irst</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled=
-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-70300655231059=
05212styled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-703=
0065523105905212styled-by-prettify">last</span><span style=3D"color:#660" c=
lass=3D"m_-7030065523105905212styled-by-prettify">,</span><span style=3D"co=
lor:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</span><sp=
an style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">=
::</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-b=
y-prettify">bind</span><span style=3D"color:#660" class=3D"m_-7030065523105=
905212styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify"> std</span><span style=3D"color:#660" =
class=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=3D"=
color:#000" class=3D"m_-7030065523105905212styled-by-prettify">greater_equa=
l</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by=
-prettify">&lt;&gt;(),</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"> _1</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">,</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> value </span><spa=
n style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">)=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"> </span><span style=3D"color:#660" class=3D"m_-703006552310590521=
2styled-by-prettify">);</span><span style=3D"color:#000" class=3D"m_-703006=
5523105905212styled-by-prettify"> <br></span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">}</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br><br><br></sp=
an><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pret=
tify">template</span><span style=3D"color:#000" class=3D"m_-703006552310590=
5212styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-7030=
065523105905212styled-by-prettify">&lt;</span><span style=3D"color:#008" cl=
ass=3D"m_-7030065523105905212styled-by-prettify">typename</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#606" class=3D"m_-7030065523105905212styled-by-prettif=
y">InputIterator</span><span style=3D"color:#660" class=3D"m_-7030065523105=
905212styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify"> </span><span style=3D"color:#008" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">typename</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> T</span=
><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pretti=
fy">&gt;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify"><br></span><span style=3D"color:#008" class=3D"m_-7030065=
523105905212styled-by-prettify">inline</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"colo=
r:#008" class=3D"m_-7030065523105905212styled-by-prettify">bool</span><span=
 style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> a=
ny_of_less_equal</span><span style=3D"color:#660" class=3D"m_-7030065523105=
905212styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify"> </span><span style=3D"color:#606" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">InputIterator</span><span s=
tyle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> fir=
st</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-b=
y-prettify">,</span><span style=3D"color:#000" class=3D"m_-7030065523105905=
212styled-by-prettify"> </span><span style=3D"color:#606" class=3D"m_-70300=
65523105905212styled-by-prettify">InputIterator</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span styl=
e=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">last</s=
pan><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pre=
ttify">,</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-7030065523=
105905212styled-by-prettify">const</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> T </span><span style=3D"colo=
r:#660" class=3D"m_-7030065523105905212styled-by-prettify">&amp;</span><spa=
n style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">v=
alue </span><span style=3D"color:#660" class=3D"m_-7030065523105905212style=
d-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-7030065523105=
905212styled-by-prettify"><br></span><span style=3D"color:#660" class=3D"m_=
-7030065523105905212styled-by-prettify">{</span><span style=3D"color:#000" =
class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span=
><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pretti=
fy">using</span><span style=3D"color:#000" class=3D"m_-7030065523105905212s=
tyled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-703006552=
3105905212styled-by-prettify">namespace</span><span style=3D"color:#000" cl=
ass=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><sp=
an style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">=
placeholders</span><span style=3D"color:#660" class=3D"m_-70300655231059052=
12styled-by-prettify">;</span><span style=3D"color:#000" class=3D"m_-703006=
5523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"co=
lor:#008" class=3D"m_-7030065523105905212styled-by-prettify">return</span><=
span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify=
"> std</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styl=
ed-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-70300655231=
05905212styled-by-prettify">any_of</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> first</span><span=
 style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">,<=
/span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-p=
rettify"> </span><span style=3D"color:#008" class=3D"m_-7030065523105905212=
styled-by-prettify">last</span><span style=3D"color:#660" class=3D"m_-70300=
65523105905212styled-by-prettify">,</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"col=
or:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><span =
style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">bin=
d</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by=
-prettify">(</span><span style=3D"color:#000" class=3D"m_-70300655231059052=
12styled-by-prettify"> std</span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">::</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">less_equal</span><span styl=
e=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&gt=
;(),</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled=
-by-prettify"> _1</span><span style=3D"color:#660" class=3D"m_-703006552310=
5905212styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-7=
030065523105905212styled-by-prettify"> value </span><span style=3D"color:#6=
60" class=3D"m_-7030065523105905212styled-by-prettify">)</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">);</span><span style=3D"color:#000" class=3D"m_-7030065523105905212style=
d-by-prettify"> <br></span><span style=3D"color:#660" class=3D"m_-703006552=
3105905212styled-by-prettify">}</span><span style=3D"color:#000" class=3D"m=
_-7030065523105905212styled-by-prettify"><br><br><br></span><span style=3D"=
color:#008" class=3D"m_-7030065523105905212styled-by-prettify">int</span><s=
pan style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"=
> main</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styl=
ed-by-prettify">()</span><span style=3D"color:#000" class=3D"m_-70300655231=
05905212styled-by-prettify"><br></span><span style=3D"color:#660" class=3D"=
m_-7030065523105905212styled-by-prettify">{</span><span style=3D"color:#000=
" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </sp=
an><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pret=
tify">const</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"> size_t N </span><span style=3D"color:#660" class=3D"m=
_-7030065523105905212styled-by-prettify">=3D</span><span style=3D"color:#00=
0" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=
=3D"color:#066" class=3D"m_-7030065523105905212styled-by-prettify">10</span=
><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pretti=
fy">;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212style=
d-by-prettify"><br>=C2=A0 =C2=A0 std</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=3D"color=
:#000" class=3D"m_-7030065523105905212styled-by-prettify">vector</span><spa=
n style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&=
lt;</span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-=
by-prettify">unsigned</span><span style=3D"color:#000" class=3D"m_-70300655=
23105905212styled-by-prettify"> </span><span style=3D"color:#008" class=3D"=
m_-7030065523105905212styled-by-prettify">int</span><span style=3D"color:#6=
60" class=3D"m_-7030065523105905212styled-by-prettify">&gt;</span><span sty=
le=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> v</sp=
an><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pret=
tify">;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212sty=
led-by-prettify"><br>=C2=A0 =C2=A0 v</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">.</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify">reserve</span><spa=
n style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"> N </span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">);</span><span style=3D"color:#000" class=3D"m_-7030=
065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 std<=
/span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-p=
rettify">::</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify">srand</span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">(</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color=
:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</span><span sty=
le=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </spa=
n><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prett=
ify">unsigned</span><span style=3D"color:#000" class=3D"m_-7030065523105905=
212styled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-70300=
65523105905212styled-by-prettify">int</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color=
:#660" class=3D"m_-7030065523105905212styled-by-prettify">)</span><span sty=
le=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">std</s=
pan><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pre=
ttify">::</span><span style=3D"color:#000" class=3D"m_-7030065523105905212s=
tyled-by-prettify">time</span><span style=3D"color:#660" class=3D"m_-703006=
5523105905212styled-by-prettify">(</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:=
#008" class=3D"m_-7030065523105905212styled-by-prettify">nullptr</span><spa=
n style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> =
</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-=
prettify">)</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-7030065=
523105905212styled-by-prettify">);</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 <br>=C2=A0 =
=C2=A0 std</span><span style=3D"color:#660" class=3D"m_-7030065523105905212=
styled-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify">generate_n</span><span style=3D"color:#660"=
 class=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"=
color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</span><=
span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify=
">::</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled=
-by-prettify">back_inserter</span><span style=3D"color:#660" class=3D"m_-70=
30065523105905212styled-by-prettify">(</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify"> v </span><span style=3D"co=
lor:#660" class=3D"m_-7030065523105905212styled-by-prettify">),</span><span=
 style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> N=
</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-=
prettify">,</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-7030065=
523105905212styled-by-prettify">[]</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:=
#660" class=3D"m_-7030065523105905212styled-by-prettify">{</span><span styl=
e=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span=
><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pretti=
fy">return</span><span style=3D"color:#000" class=3D"m_-7030065523105905212=
styled-by-prettify"> std</span><span style=3D"color:#660" class=3D"m_-70300=
65523105905212styled-by-prettify">::</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify">rand</span><span style=3D"col=
or:#660" class=3D"m_-7030065523105905212styled-by-prettify">()</span><span =
style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </=
span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pr=
ettify">%</span><span style=3D"color:#000" class=3D"m_-7030065523105905212s=
tyled-by-prettify"> N</span><span style=3D"color:#660" class=3D"m_-70300655=
23105905212styled-by-prettify">;</span><span style=3D"color:#000" class=3D"=
m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:#660=
" class=3D"m_-7030065523105905212styled-by-prettify">}</span><span style=3D=
"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><sp=
an style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">=
);</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-b=
y-prettify"><br>=C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 </span><span style=3D"color=
:#008" class=3D"m_-7030065523105905212styled-by-prettify">for</span><span s=
tyle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </s=
pan><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pre=
ttify">(</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-7030065523=
105905212styled-by-prettify">const</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:=
#008" class=3D"m_-7030065523105905212styled-by-prettify">auto</span><span s=
tyle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </s=
pan><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pre=
ttify">&amp;</span><span style=3D"color:#000" class=3D"m_-70300655231059052=
12styled-by-prettify">item </span><span style=3D"color:#660" class=3D"m_-70=
30065523105905212styled-by-prettify">:</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify"> v </span><span style=3D"co=
lor:#660" class=3D"m_-7030065523105905212styled-by-prettify">)</span><span =
style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> st=
d</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by=
-prettify">::</span><span style=3D"color:#000" class=3D"m_-7030065523105905=
212styled-by-prettify">cout </span><span style=3D"color:#660" class=3D"m_-7=
030065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:#=
000" class=3D"m_-7030065523105905212styled-by-prettify"> item </span><span =
style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt=
;&lt;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212style=
d-by-prettify"> </span><span style=3D"color:#080" class=3D"m_-7030065523105=
905212styled-by-prettify">&#39; &#39;</span><span style=3D"color:#660" clas=
s=3D"m_-7030065523105905212styled-by-prettify">;</span><span style=3D"color=
:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0=
 std</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled=
-by-prettify">::</span><span style=3D"color:#000" class=3D"m_-7030065523105=
905212styled-by-prettify">cout </span><span style=3D"color:#660" class=3D"m=
_-7030065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span st=
yle=3D"color:#080" class=3D"m_-7030065523105905212styled-by-prettify">&#39;=
\n&#39;</span><span style=3D"color:#660" class=3D"m_-7030065523105905212sty=
led-by-prettify">;</span><span style=3D"color:#000" class=3D"m_-70300655231=
05905212styled-by-prettify"><br>=C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 </span><spa=
n style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">u=
nsigned</span><span style=3D"color:#000" class=3D"m_-7030065523105905212sty=
led-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-70300655231=
05905212styled-by-prettify">int</span><span style=3D"color:#000" class=3D"m=
_-7030065523105905212styled-by-prettify"> value </span><span style=3D"color=
:#660" class=3D"m_-7030065523105905212styled-by-prettify">=3D</span><span s=
tyle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std=
</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-=
prettify">::</span><span style=3D"color:#000" class=3D"m_-70300655231059052=
12styled-by-prettify">rand</span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">()</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"colo=
r:#660" class=3D"m_-7030065523105905212styled-by-prettify">%</span><span st=
yle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> N</s=
pan><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pre=
ttify">;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify"><br><br><br>=C2=A0 =C2=A0 </span><span style=3D"color:#00=
8" class=3D"m_-7030065523105905212styled-by-prettify">if</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">(</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled=
-by-prettify"> any_of_equal_to</span><span style=3D"color:#660" class=3D"m_=
-7030065523105905212styled-by-prettify">(</span><span style=3D"color:#000" =
class=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span=
><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pretti=
fy">begin</span><span style=3D"color:#660" class=3D"m_-7030065523105905212s=
tyled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-703006552=
3105905212styled-by-prettify"> v </span><span style=3D"color:#660" class=3D=
"m_-7030065523105905212styled-by-prettify">),</span><span style=3D"color:#0=
00" class=3D"m_-7030065523105905212styled-by-prettify"> std</span><span sty=
le=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</sp=
an><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pret=
tify">end</span><span style=3D"color:#660" class=3D"m_-7030065523105905212s=
tyled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-703006552=
3105905212styled-by-prettify"> v </span><span style=3D"color:#660" class=3D=
"m_-7030065523105905212styled-by-prettify">),</span><span style=3D"color:#0=
00" class=3D"m_-7030065523105905212styled-by-prettify"> value </span><span =
style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">)</=
span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pr=
ettify"> </span><span style=3D"color:#660" class=3D"m_-7030065523105905212s=
tyled-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-703006552=
3105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color=
:#660" class=3D"m_-7030065523105905212styled-by-prettify">{</span><span sty=
le=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660" class=3D"m=
_-7030065523105905212styled-by-prettify">::</span><span style=3D"color:#000=
" class=3D"m_-7030065523105905212styled-by-prettify">cout </span><span styl=
e=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt=
;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by=
-prettify"> value </span><span style=3D"color:#660" class=3D"m_-70300655231=
05905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:=
#080" class=3D"m_-7030065523105905212styled-by-prettify">&quot; is encounte=
red at position &quot;</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660" class=3D"m_-7030=
065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:#000=
" class=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy">distance</span><span style=3D"color:#660" class=3D"m_-70300655231059052=
12styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-703006=
5523105905212styled-by-prettify"> std</span><span style=3D"color:#660" clas=
s=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=3D"colo=
r:#008" class=3D"m_-7030065523105905212styled-by-prettify">begin</span><spa=
n style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"> v </span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">),</span><span style=3D"color:#000" class=3D"m_-7030=
065523105905212styled-by-prettify"> find_equal_to</span><span style=3D"colo=
r:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</span><span st=
yle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std<=
/span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-p=
rettify">::</span><span style=3D"color:#008" class=3D"m_-703006552310590521=
2styled-by-prettify">begin</span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">(</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify"> v </span><span style=3D"col=
or:#660" class=3D"m_-7030065523105905212styled-by-prettify">),</span><span =
style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> st=
d</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by=
-prettify">::</span><span style=3D"color:#008" class=3D"m_-7030065523105905=
212styled-by-prettify">end</span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">(</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify"> v </span><span style=3D"col=
or:#660" class=3D"m_-7030065523105905212styled-by-prettify">),</span><span =
style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> va=
lue </span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled=
-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-70300655231059=
05212styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">)</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660" cl=
ass=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#080" class=3D"m_-7030065523105905212styled-by-prettif=
y">&#39;\n&#39;</span><span style=3D"color:#660" class=3D"m_-70300655231059=
05212styled-by-prettify">;</span><span style=3D"color:#000" class=3D"m_-703=
0065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D=
"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">}</span><sp=
an style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">=
<br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=3D"m_-70300655231=
05905212styled-by-prettify">else</span><span style=3D"color:#000" class=3D"=
m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span st=
yle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">{</sp=
an><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pret=
tify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660" =
class=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=3D"=
color:#000" class=3D"m_-7030065523105905212styled-by-prettify">cout </span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"> value </span><span style=3D"color:#660" class=3D"m_-7=
030065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:#=
000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=
=3D"color:#080" class=3D"m_-7030065523105905212styled-by-prettify">&quot; h=
as not been found.\n&quot;</span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">;</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><sp=
an style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">=
}</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by=
-prettify"><br><br><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" clas=
s=3D"m_-7030065523105905212styled-by-prettify">if</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span st=
yle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</sp=
an><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pret=
tify"> any_of_equal_to</span><span style=3D"color:#660" class=3D"m_-7030065=
523105905212styled-by-prettify">(</span><span style=3D"color:#000" class=3D=
"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"color:=
#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><span sty=
le=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">begin<=
/span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-p=
rettify">(</span><span style=3D"color:#000" class=3D"m_-7030065523105905212=
styled-by-prettify"> v </span><span style=3D"color:#660" class=3D"m_-703006=
5523105905212styled-by-prettify">),</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"col=
or:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><span =
style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">end=
</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-=
prettify">(</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"> v </span><span style=3D"color:#660" class=3D"m_-70300=
65523105905212styled-by-prettify">),</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> value </span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">)</span><spa=
n style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> =
</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-=
prettify">)</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660" cl=
ass=3D"m_-7030065523105905212styled-by-prettify">{</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660" class=3D"m_-70300655=
23105905212styled-by-prettify">::</span><span style=3D"color:#000" class=3D=
"m_-7030065523105905212styled-by-prettify">cout </span><span style=3D"color=
:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</span><s=
pan style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"=
> </span><span style=3D"color:#080" class=3D"m_-7030065523105905212styled-b=
y-prettify">&quot;A value not equal to &quot;</span><span style=3D"color:#0=
00" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"> value </span><span style=3D"color:#660" class=3D"m_-703006552310=
5905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:=
#080" class=3D"m_-7030065523105905212styled-by-prettify">&quot; is encounte=
red at position &quot;</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660" class=3D"m_-7030=
065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:#000=
" class=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy">distance</span><span style=3D"color:#660" class=3D"m_-70300655231059052=
12styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-703006=
5523105905212styled-by-prettify"> std</span><span style=3D"color:#660" clas=
s=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=3D"colo=
r:#008" class=3D"m_-7030065523105905212styled-by-prettify">begin</span><spa=
n style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"> v </span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">),</span><span style=3D"color:#000" class=3D"m_-7030=
065523105905212styled-by-prettify"> find_not_equal_to</span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</span><spa=
n style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> =
std</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-=
by-prettify">::</span><span style=3D"color:#008" class=3D"m_-70300655231059=
05212styled-by-prettify">begin</span><span style=3D"color:#660" class=3D"m_=
-7030065523105905212styled-by-prettify">(</span><span style=3D"color:#000" =
class=3D"m_-7030065523105905212styled-by-prettify"> v </span><span style=3D=
"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">),</span><s=
pan style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"=
> std</span><span style=3D"color:#660" class=3D"m_-7030065523105905212style=
d-by-prettify">::</span><span style=3D"color:#008" class=3D"m_-703006552310=
5905212styled-by-prettify">end</span><span style=3D"color:#660" class=3D"m_=
-7030065523105905212styled-by-prettify">(</span><span style=3D"color:#000" =
class=3D"m_-7030065523105905212styled-by-prettify"> v </span><span style=3D=
"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">),</span><s=
pan style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"=
> value </span><span style=3D"color:#660" class=3D"m_-7030065523105905212st=
yled-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-7030065523=
105905212styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_=
-7030065523105905212styled-by-prettify">)</span><span style=3D"color:#000" =
class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660=
" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</span><span s=
tyle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </s=
pan><span style=3D"color:#080" class=3D"m_-7030065523105905212styled-by-pre=
ttify">&#39;\n&#39;</span><span style=3D"color:#660" class=3D"m_-7030065523=
105905212styled-by-prettify">;</span><span style=3D"color:#000" class=3D"m_=
-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span styl=
e=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">}</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=3D"m_-7030065=
523105905212styled-by-prettify">else</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><spa=
n style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">{=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#6=
60" class=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify">cout </s=
pan><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pre=
ttify">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_-70300655231059=
05212styled-by-prettify"> </span><span style=3D"color:#080" class=3D"m_-703=
0065523105905212styled-by-prettify">&quot;A value not equal to &quot;</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy"> </span><span style=3D"color:#660" class=3D"m_-7030065523105905212style=
d-by-prettify">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_-703006=
5523105905212styled-by-prettify"> value </span><span style=3D"color:#660" c=
lass=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</span><span styl=
e=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span=
><span style=3D"color:#080" class=3D"m_-7030065523105905212styled-by-pretti=
fy">&quot; has not been found.\n&quot;</span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">;</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=
=A0 </span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled=
-by-prettify">}</span><span style=3D"color:#000" class=3D"m_-70300655231059=
05212styled-by-prettify"><br><br><br>=C2=A0 =C2=A0 </span><span style=3D"co=
lor:#008" class=3D"m_-7030065523105905212styled-by-prettify">if</span><span=
 style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> <=
/span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-p=
rettify">(</span><span style=3D"color:#000" class=3D"m_-7030065523105905212=
styled-by-prettify"> any_of_greater</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</span><span s=
tyle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</=
span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pr=
ettify">begin</span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-70300=
65523105905212styled-by-prettify"> v </span><span style=3D"color:#660" clas=
s=3D"m_-7030065523105905212styled-by-prettify">),</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</span><span=
 style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::=
</span><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-=
prettify">end</span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-70300=
65523105905212styled-by-prettify"> v </span><span style=3D"color:#660" clas=
s=3D"m_-7030065523105905212styled-by-prettify">),</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> value </span><s=
pan style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify"=
>)</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-b=
y-prettify"> </span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-70300=
65523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"c=
olor:#660" class=3D"m_-7030065523105905212styled-by-prettify">{</span><span=
 style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><b=
r>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660" class=3D=
"m_-7030065523105905212styled-by-prettify">::</span><span style=3D"color:#0=
00" class=3D"m_-7030065523105905212styled-by-prettify">cout </span><span st=
yle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&=
lt;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-=
by-prettify"> </span><span style=3D"color:#080" class=3D"m_-703006552310590=
5212styled-by-prettify">&quot;A value greater than &quot;</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"> value </span><span style=3D"color:#660" class=3D"m_-7=
030065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:#=
000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=
=3D"color:#080" class=3D"m_-7030065523105905212styled-by-prettify">&quot; i=
s encountered at position &quot;</span><span style=3D"color:#000" class=3D"=
m_-7030065523105905212styled-by-prettify"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D=
"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">::</span><span style=3D"color:#000" class=3D"m_-7030065523105905212style=
d-by-prettify">distance</span><span style=3D"color:#660" class=3D"m_-703006=
5523105905212styled-by-prettify">(</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"col=
or:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><span =
style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">beg=
in</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-b=
y-prettify">(</span><span style=3D"color:#000" class=3D"m_-7030065523105905=
212styled-by-prettify"> v </span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">),</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify"> find_greater</span><span s=
tyle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</s=
pan><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pre=
ttify"> std</span><span style=3D"color:#660" class=3D"m_-703006552310590521=
2styled-by-prettify">::</span><span style=3D"color:#008" class=3D"m_-703006=
5523105905212styled-by-prettify">begin</span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> v </span><span =
style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">),<=
/span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-p=
rettify"> std</span><span style=3D"color:#660" class=3D"m_-7030065523105905=
212styled-by-prettify">::</span><span style=3D"color:#008" class=3D"m_-7030=
065523105905212styled-by-prettify">end</span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> v </span><span =
style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">),<=
/span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-p=
rettify"> value </span><span style=3D"color:#660" class=3D"m_-7030065523105=
905212styled-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify"> </span><span style=3D"color:#660" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">)</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</sp=
an><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pret=
tify"> </span><span style=3D"color:#080" class=3D"m_-7030065523105905212sty=
led-by-prettify">&#39;\n&#39;</span><span style=3D"color:#660" class=3D"m_-=
7030065523105905212styled-by-prettify">;</span><span style=3D"color:#000" c=
lass=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">}</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled=
-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=3D"=
m_-7030065523105905212styled-by-prettify">else</span><span style=3D"color:#=
000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 <=
/span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-p=
rettify">{</span><span style=3D"color:#000" class=3D"m_-7030065523105905212=
styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy">cout </span><span style=3D"color:#660" class=3D"m_-7030065523105905212s=
tyled-by-prettify">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify"> </span><span style=3D"color:#080" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">&quot;A value greater than =
&quot;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styl=
ed-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-703006552310=
5905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> value </span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</sp=
an><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pret=
tify"> </span><span style=3D"color:#080" class=3D"m_-7030065523105905212sty=
led-by-prettify">&quot; has not been found.\n&quot;</span><span style=3D"co=
lor:#660" class=3D"m_-7030065523105905212styled-by-prettify">;</span><span =
style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br=
>=C2=A0 =C2=A0 </span><span style=3D"color:#660" class=3D"m_-70300655231059=
05212styled-by-prettify">}</span><span style=3D"color:#000" class=3D"m_-703=
0065523105905212styled-by-prettify"><br><br><br>=C2=A0 =C2=A0 </span><span =
style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">if<=
/span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-p=
rettify"> </span><span style=3D"color:#660" class=3D"m_-7030065523105905212=
styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-70300655=
23105905212styled-by-prettify"> any_of_less</span><span style=3D"color:#660=
" class=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D=
"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">::</span><span style=3D"color:#008" class=3D"m_-7030065523105905212style=
d-by-prettify">begin</span><span style=3D"color:#660" class=3D"m_-703006552=
3105905212styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m=
_-7030065523105905212styled-by-prettify"> v </span><span style=3D"color:#66=
0" class=3D"m_-7030065523105905212styled-by-prettify">),</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</sp=
an><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pret=
tify">::</span><span style=3D"color:#008" class=3D"m_-7030065523105905212st=
yled-by-prettify">end</span><span style=3D"color:#660" class=3D"m_-70300655=
23105905212styled-by-prettify">(</span><span style=3D"color:#000" class=3D"=
m_-7030065523105905212styled-by-prettify"> v </span><span style=3D"color:#6=
60" class=3D"m_-7030065523105905212styled-by-prettify">),</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> value <=
/span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-p=
rettify">)</span><span style=3D"color:#000" class=3D"m_-7030065523105905212=
styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-70300655=
23105905212styled-by-prettify">)</span><span style=3D"color:#000" class=3D"=
m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span st=
yle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">{</sp=
an><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pret=
tify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660" =
class=3D"m_-7030065523105905212styled-by-prettify">::</span><span style=3D"=
color:#000" class=3D"m_-7030065523105905212styled-by-prettify">cout </span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"> </span><span style=3D"color:#080" class=3D"m_-7030065=
523105905212styled-by-prettify">&quot;A value less than &quot;</span><span =
style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </=
span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pr=
ettify">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_-7030065523105=
905212styled-by-prettify"> value </span><span style=3D"color:#660" class=3D=
"m_-7030065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D"co=
lor:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span =
style=3D"color:#080" class=3D"m_-7030065523105905212styled-by-prettify">&qu=
ot; is encountered at position &quot;</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify"> <br>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660"=
 class=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</span><span st=
yle=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std<=
/span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-p=
rettify">::</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify">distance</span><span style=3D"color:#660" class=3D"m_-=
7030065523105905212styled-by-prettify">(</span><span style=3D"color:#000" c=
lass=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D=
"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><s=
pan style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify"=
>begin</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styl=
ed-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-703006552310=
5905212styled-by-prettify"> v </span><span style=3D"color:#660" class=3D"m_=
-7030065523105905212styled-by-prettify">),</span><span style=3D"color:#000"=
 class=3D"m_-7030065523105905212styled-by-prettify"> find_less</span><span =
style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</=
span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pr=
ettify"> std</span><span style=3D"color:#660" class=3D"m_-70300655231059052=
12styled-by-prettify">::</span><span style=3D"color:#008" class=3D"m_-70300=
65523105905212styled-by-prettify">begin</span><span style=3D"color:#660" cl=
ass=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"> v </span><span=
 style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">),=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"> std</span><span style=3D"color:#660" class=3D"m_-703006552310590=
5212styled-by-prettify">::</span><span style=3D"color:#008" class=3D"m_-703=
0065523105905212styled-by-prettify">end</span><span style=3D"color:#660" cl=
ass=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"> v </span><span=
 style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">),=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"> value </span><span style=3D"color:#660" class=3D"m_-703006552310=
5905212styled-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-7=
030065523105905212styled-by-prettify"> </span><span style=3D"color:#660" cl=
ass=3D"m_-7030065523105905212styled-by-prettify">)</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</sp=
an><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pret=
tify"> </span><span style=3D"color:#080" class=3D"m_-7030065523105905212sty=
led-by-prettify">&#39;\n&#39;</span><span style=3D"color:#660" class=3D"m_-=
7030065523105905212styled-by-prettify">;</span><span style=3D"color:#000" c=
lass=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">}</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled=
-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=3D"=
m_-7030065523105905212styled-by-prettify">else</span><span style=3D"color:#=
000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 <=
/span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-p=
rettify">{</span><span style=3D"color:#000" class=3D"m_-7030065523105905212=
styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy">cout </span><span style=3D"color:#660" class=3D"m_-7030065523105905212s=
tyled-by-prettify">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify"> </span><span style=3D"color:#080" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">&quot;A value less than &qu=
ot;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-=
by-prettify"> </span><span style=3D"color:#660" class=3D"m_-703006552310590=
5212styled-by-prettify">&lt;&lt;</span><span style=3D"color:#000" class=3D"=
m_-7030065523105905212styled-by-prettify"> value </span><span style=3D"colo=
r:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</span><=
span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify=
"> </span><span style=3D"color:#080" class=3D"m_-7030065523105905212styled-=
by-prettify">&quot; has not been found.\n&quot;</span><span style=3D"color:=
#660" class=3D"m_-7030065523105905212styled-by-prettify">;</span><span styl=
e=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#660" class=3D"m_-703006552310590521=
2styled-by-prettify">}</span><span style=3D"color:#000" class=3D"m_-7030065=
523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 </span>=
<span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettif=
y">if</span><span style=3D"color:#000" class=3D"m_-7030065523105905212style=
d-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-7030065523105=
905212styled-by-prettify">(</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify"> any_of_greater_equal</span><span styl=
e=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy"> std</span><span style=3D"color:#660" class=3D"m_-7030065523105905212st=
yled-by-prettify">::</span><span style=3D"color:#008" class=3D"m_-703006552=
3105905212styled-by-prettify">begin</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> v </span><span st=
yle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">),</s=
pan><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pre=
ttify"> std</span><span style=3D"color:#660" class=3D"m_-703006552310590521=
2styled-by-prettify">::</span><span style=3D"color:#008" class=3D"m_-703006=
5523105905212styled-by-prettify">end</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> v </span><span st=
yle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">),</s=
pan><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pre=
ttify"> value </span><span style=3D"color:#660" class=3D"m_-703006552310590=
5212styled-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-7030=
065523105905212styled-by-prettify"> </span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">)</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 =
</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-=
prettify">{</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy">cout </span><span style=3D"color:#660" class=3D"m_-7030065523105905212s=
tyled-by-prettify">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_-70=
30065523105905212styled-by-prettify"> </span><span style=3D"color:#080" cla=
ss=3D"m_-7030065523105905212styled-by-prettify">&quot;A value greater than =
or equal to &quot;</span><span style=3D"color:#000" class=3D"m_-70300655231=
05905212styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-=
7030065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> value </span><spa=
n style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&=
lt;&lt;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212sty=
led-by-prettify"> </span><span style=3D"color:#080" class=3D"m_-70300655231=
05905212styled-by-prettify">&quot; is encountered at position &quot;</span>=
<span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettif=
y"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </sp=
an><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pret=
tify">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_-703006552310590=
5212styled-by-prettify"> std</span><span style=3D"color:#660" class=3D"m_-7=
030065523105905212styled-by-prettify">::</span><span style=3D"color:#000" c=
lass=3D"m_-7030065523105905212styled-by-prettify">distance</span><span styl=
e=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy"> std</span><span style=3D"color:#660" class=3D"m_-7030065523105905212st=
yled-by-prettify">::</span><span style=3D"color:#008" class=3D"m_-703006552=
3105905212styled-by-prettify">begin</span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> v </span><span st=
yle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">),</s=
pan><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pre=
ttify"> find_greater_equal</span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">(</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"co=
lor:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><span=
 style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">be=
gin</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-=
by-prettify">(</span><span style=3D"color:#000" class=3D"m_-703006552310590=
5212styled-by-prettify"> v </span><span style=3D"color:#660" class=3D"m_-70=
30065523105905212styled-by-prettify">),</span><span style=3D"color:#000" cl=
ass=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"=
color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><sp=
an style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">=
end</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-=
by-prettify">(</span><span style=3D"color:#000" class=3D"m_-703006552310590=
5212styled-by-prettify"> v </span><span style=3D"color:#660" class=3D"m_-70=
30065523105905212styled-by-prettify">),</span><span style=3D"color:#000" cl=
ass=3D"m_-7030065523105905212styled-by-prettify"> value </span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">)</span>=
<span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettif=
y"> </span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled=
-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-70300655231059=
05212styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660" class=3D"m_-70300655231=
05905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=3D"color:=
#080" class=3D"m_-7030065523105905212styled-by-prettify">&#39;\n&#39;</span=
><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pretti=
fy">;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212style=
d-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660" class=3D=
"m_-7030065523105905212styled-by-prettify">}</span><span style=3D"color:#00=
0" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </s=
pan><span style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-pre=
ttify">else</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660" cl=
ass=3D"m_-7030065523105905212styled-by-prettify">{</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660" class=3D"m_-70300655=
23105905212styled-by-prettify">::</span><span style=3D"color:#000" class=3D=
"m_-7030065523105905212styled-by-prettify">cout </span><span style=3D"color=
:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</span><s=
pan style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"=
> </span><span style=3D"color:#080" class=3D"m_-7030065523105905212styled-b=
y-prettify">&quot;A value greater than or equal to &quot;</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"> value </span><span style=3D"color:#660" class=3D"m_-7=
030065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:#=
000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=
=3D"color:#080" class=3D"m_-7030065523105905212styled-by-prettify">&quot; h=
as not been found.\n&quot;</span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">;</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><sp=
an style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">=
}</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by=
-prettify"><br><br><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" clas=
s=3D"m_-7030065523105905212styled-by-prettify">if</span><span style=3D"colo=
r:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span st=
yle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(</sp=
an><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pret=
tify"> any_of_less_equal</span><span style=3D"color:#660" class=3D"m_-70300=
65523105905212styled-by-prettify">(</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"col=
or:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><span =
style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">beg=
in</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-b=
y-prettify">(</span><span style=3D"color:#000" class=3D"m_-7030065523105905=
212styled-by-prettify"> v </span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">),</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"c=
olor:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><spa=
n style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">e=
nd</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-b=
y-prettify">(</span><span style=3D"color:#000" class=3D"m_-7030065523105905=
212styled-by-prettify"> v </span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">),</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify"> value </span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">)</span>=
<span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettif=
y"> </span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled=
-by-prettify">)</span><span style=3D"color:#000" class=3D"m_-70300655231059=
05212styled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660=
" class=3D"m_-7030065523105905212styled-by-prettify">{</span><span style=3D=
"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660" class=3D"m_-70300=
65523105905212styled-by-prettify">::</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify">cout </span><span style=3D"co=
lor:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</span=
><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pretti=
fy"> </span><span style=3D"color:#080" class=3D"m_-7030065523105905212style=
d-by-prettify">&quot;A value less than or equal to &quot;</span><span style=
=3D"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> </span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_-703006552310590521=
2styled-by-prettify"> value </span><span style=3D"color:#660" class=3D"m_-7=
030065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:#=
000" class=3D"m_-7030065523105905212styled-by-prettify"> </span><span style=
=3D"color:#080" class=3D"m_-7030065523105905212styled-by-prettify">&quot; i=
s encountered at position &quot;</span><span style=3D"color:#000" class=3D"=
m_-7030065523105905212styled-by-prettify"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660" class=
=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D=
"color:#000" class=3D"m_-7030065523105905212styled-by-prettify"> std</span>=
<span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettif=
y">::</span><span style=3D"color:#000" class=3D"m_-7030065523105905212style=
d-by-prettify">distance</span><span style=3D"color:#660" class=3D"m_-703006=
5523105905212styled-by-prettify">(</span><span style=3D"color:#000" class=
=3D"m_-7030065523105905212styled-by-prettify"> std</span><span style=3D"col=
or:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</span><span =
style=3D"color:#008" class=3D"m_-7030065523105905212styled-by-prettify">beg=
in</span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-b=
y-prettify">(</span><span style=3D"color:#000" class=3D"m_-7030065523105905=
212styled-by-prettify"> v </span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">),</span><span style=3D"color:#000" cla=
ss=3D"m_-7030065523105905212styled-by-prettify"> find_less_equal</span><spa=
n style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">(=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"> std</span><span style=3D"color:#660" class=3D"m_-703006552310590=
5212styled-by-prettify">::</span><span style=3D"color:#008" class=3D"m_-703=
0065523105905212styled-by-prettify">begin</span><span style=3D"color:#660" =
class=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"c=
olor:#000" class=3D"m_-7030065523105905212styled-by-prettify"> v </span><sp=
an style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">=
),</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-b=
y-prettify"> std</span><span style=3D"color:#660" class=3D"m_-7030065523105=
905212styled-by-prettify">::</span><span style=3D"color:#008" class=3D"m_-7=
030065523105905212styled-by-prettify">end</span><span style=3D"color:#660" =
class=3D"m_-7030065523105905212styled-by-prettify">(</span><span style=3D"c=
olor:#000" class=3D"m_-7030065523105905212styled-by-prettify"> v </span><sp=
an style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">=
),</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-b=
y-prettify"> value </span><span style=3D"color:#660" class=3D"m_-7030065523=
105905212styled-by-prettify">)</span><span style=3D"color:#000" class=3D"m_=
-7030065523105905212styled-by-prettify"> </span><span style=3D"color:#660" =
class=3D"m_-7030065523105905212styled-by-prettify">)</span><span style=3D"c=
olor:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=
=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&lt;&lt;=
</span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-=
prettify"> </span><span style=3D"color:#080" class=3D"m_-703006552310590521=
2styled-by-prettify">&#39;\n&#39;</span><span style=3D"color:#660" class=3D=
"m_-7030065523105905212styled-by-prettify">;</span><span style=3D"color:#00=
0" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=A0 </s=
pan><span style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-pre=
ttify">}</span><span style=3D"color:#000" class=3D"m_-7030065523105905212st=
yled-by-prettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008" class=
=3D"m_-7030065523105905212styled-by-prettify">else</span><span style=3D"col=
or:#000" class=3D"m_-7030065523105905212styled-by-prettify"><br>=C2=A0 =C2=
=A0 </span><span style=3D"color:#660" class=3D"m_-7030065523105905212styled=
-by-prettify">{</span><span style=3D"color:#000" class=3D"m_-70300655231059=
05212styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span st=
yle=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">::</s=
pan><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pre=
ttify">cout </span><span style=3D"color:#660" class=3D"m_-70300655231059052=
12styled-by-prettify">&lt;&lt;</span><span style=3D"color:#000" class=3D"m_=
-7030065523105905212styled-by-prettify"> </span><span style=3D"color:#080" =
class=3D"m_-7030065523105905212styled-by-prettify">&quot;A value less than =
or equal to &quot;</span><span style=3D"color:#000" class=3D"m_-70300655231=
05905212styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_-=
7030065523105905212styled-by-prettify">&lt;&lt;</span><span style=3D"color:=
#000" class=3D"m_-7030065523105905212styled-by-prettify"> value </span><spa=
n style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">&=
lt;&lt;</span><span style=3D"color:#000" class=3D"m_-7030065523105905212sty=
led-by-prettify"> </span><span style=3D"color:#080" class=3D"m_-70300655231=
05905212styled-by-prettify">&quot; has not been found.\n&quot;</span><span =
style=3D"color:#660" class=3D"m_-7030065523105905212styled-by-prettify">;</=
span><span style=3D"color:#000" class=3D"m_-7030065523105905212styled-by-pr=
ettify"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660" class=3D"m_-703=
0065523105905212styled-by-prettify">}</span><span style=3D"color:#000" clas=
s=3D"m_-7030065523105905212styled-by-prettify"><br></span><span style=3D"co=
lor:#660" class=3D"m_-7030065523105905212styled-by-prettify">}</span></div>=
</code></div><div><br>Its output might look like</div><div><br></div><div><=
pre class=3D"m_-7030065523105905212StdOut" style=3D"box-sizing:border-box;o=
verflow:auto;font-family:&quot;Courier New&quot;,monospace;line-height:1.42=
857;color:rgb(255,255,255);word-break:break-all;word-wrap:break-word;backgr=
ound-color:rgb(0,0,0);border-radius:4px;white-space:pre-wrap">6 9 0 2 8 1 2=
 8 3 4=20
1 is encountered at position 5
A value not equal to 1 is encountered at position 0
A value greater than 1 is encountered at position 0
A value less than 1 is encountered at position 2
A value greater than or equal to 1 is encountered at position 0
A value less than or equal to 1 is encountered at position 2</pre></div><di=
v><br></div><br>=D1=81=D1=83=D0=B1=D0=B1=D0=BE=D1=82=D0=B0, 15 =D1=81=D0=B5=
=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 12:26:40 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 M=
oscow =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;padd=
ing-left:1ex"><div dir=3D"ltr">There are already standard function object t=
ypes in the C++ Standard<div><br></div><div><span style=3D"font-family:LMMo=
no9-Regular;font-size:8pt;color:rgb(0,0,0)"><div style=3D"background-color:=
rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;border-wi=
dth:1px;word-wrap:break-word"><code><div><span style=3D"color:#008">templat=
e</span><span style=3D"color:#660">&lt;</span><span style=3D"color:#008">cl=
ass</span><span style=3D"color:#000"> T </span><span style=3D"color:#660">=
=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#008">voi=
d</span><span style=3D"color:#660">&gt;</span><span style=3D"color:#000"> <=
/span><span style=3D"color:#008">struct</span><span style=3D"color:#000"> e=
qual_to</span><span style=3D"color:#660">;</span><span style=3D"color:#000"=
><br></span><span style=3D"color:#008">template</span><span style=3D"color:=
#660">&lt;</span><span style=3D"color:#008">class</span><span style=3D"colo=
r:#000"> T </span><span style=3D"color:#660">=3D</span><span style=3D"color=
:#000"> </span><span style=3D"color:#008">void</span><span style=3D"color:#=
660">&gt;</span><span style=3D"color:#000"> </span><span style=3D"color:#00=
8">struct</span><span style=3D"color:#000"> not_equal_to</span><span style=
=3D"color:#660">;</span><span style=3D"color:#000"><br></span><span style=
=3D"color:#008">template</span><span style=3D"color:#660">&lt;</span><span =
style=3D"color:#008">class</span><span style=3D"color:#000"> T </span><span=
 style=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#008">void</span><span style=3D"color:#660">&gt;</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#008">struct</span><span s=
tyle=3D"color:#000"> greater</span><span style=3D"color:#660">;</span><span=
 style=3D"color:#000"><br></span><span style=3D"color:#008">template</span>=
<span style=3D"color:#660">&lt;</span><span style=3D"color:#008">class</spa=
n><span style=3D"color:#000"> T </span><span style=3D"color:#660">=3D</span=
><span style=3D"color:#000"> </span><span style=3D"color:#008">void</span><=
span style=3D"color:#660">&gt;</span><span style=3D"color:#000"> </span><sp=
an style=3D"color:#008">struct</span><span style=3D"color:#000"> less</span=
><span style=3D"color:#660">;</span><span style=3D"color:#000"><br></span><=
span style=3D"color:#008">template</span><span style=3D"color:#660">&lt;</s=
pan><span style=3D"color:#008">class</span><span style=3D"color:#000"> T </=
span><span style=3D"color:#660">=3D</span><span style=3D"color:#000"> </spa=
n><span style=3D"color:#008">void&lt;/spa</span></div></code></div></span><=
/div></div></blockquote></div></div></blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; 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/CALmDwq23r1ydP08U2%2B%3D2v%3DE%2B%2BM=
CF4kUSHY0cASpfLioOivYgxA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Df=
ooter">https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CALmDwq=
23r1ydP08U2%2B%3D2v%3DE%2B%2BMCF4kUSHY0cASpfLioOivYgxA%40mail.gmail.com</a>=
..<br />

--0000000000003978a8057638b248--

.


Author: "'Vlad from Moscow' via ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Date: Wed, 19 Sep 2018 06:21:32 -0700 (PDT)
Raw View
------=_Part_2739_1684901315.1537363293118
Content-Type: multipart/alternative;
 boundary="----=_Part_2740_555419404.1537363293122"

------=_Part_2740_555419404.1537363293122
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I haven't yet investigated with the Ranges proposal. Could you show an=20
equivalent code?

=D1=81=D1=80=D0=B5=D0=B4=D0=B0, 19 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=
=80=D1=8F 2018 =D0=B3., 15:39: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 Nicolas Lesser=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> Doesn't the Ranges TS basically render your proposal obsolete? It's even=
=20
> more composable.
>
> On Wed, Sep 19, 2018, 2:32 PM 'Vlad from Moscow' via ISO C++ Standard -=
=20
> Future Proposals <std-pr...@isocpp.org <javascript:>> wrote:
>
>> Here is a simple demonstrative program
>>
>> #include <iostream>
>> #include <vector>
>> #include <functional>
>> #include <iterator>
>> #include <algorithm>
>> #include <ctime>
>> #include <cstdlib>
>>
>>
>> template <typename InputIterator, typename T>
>> inline InputIterator find_equal_to( InputIterator first, InputIterator=
=20
>> last, const T &value )
>> {
>>     return std::find( first, last, value );=20
>> }
>>
>>
>> template <typename InputIterator, typename T>
>> inline InputIterator find_not_equal_to( InputIterator first,=20
>> InputIterator last, const T &value )
>> {
>>     using namespace std::placeholders;
>>     return std::find_if( first, last, std::bind( std::not_equal_to<>(),=
=20
>> _1, value ) );=20
>> }
>>
>>
>> template <typename InputIterator, typename T>
>> inline InputIterator find_greater( InputIterator first, InputIterator=20
>> last, const T &value )
>> {
>>     using namespace std::placeholders;
>>     return std::find_if( first, last, std::bind( std::greater<>(), _1,=
=20
>> value ) );=20
>> }
>>
>>
>> template <typename InputIterator, typename T>
>> inline InputIterator find_less( InputIterator first, InputIterator last,=
=20
>> const T &value )
>> {
>>     using namespace std::placeholders;
>>     return std::find_if( first, last, std::bind( std::less<>(), _1,=20
>> value ) );=20
>> }
>>
>>
>> template <typename InputIterator, typename T>
>> inline InputIterator find_greater_equal( InputIterator first,=20
>> InputIterator last, const T &value )
>> {
>>     using namespace std::placeholders;
>>     return std::find_if( first, last, std::bind( std::greater_equal<>(),=
=20
>> _1, value ) );=20
>> }
>>
>>
>> template <typename InputIterator, typename T>
>> inline InputIterator find_less_equal( InputIterator first, InputIterator=
=20
>> last, const T &value )
>> {
>>     using namespace std::placeholders;
>>     return std::find_if( first, last, std::bind( std::less_equal<>(), _1=
,=20
>> value ) );=20
>> }
>>
>>
>> template <typename InputIterator, typename T>
>> inline bool any_of_equal_to( InputIterator first, InputIterator last,=20
>> const T &value )
>> {
>>     using namespace std::placeholders;
>>     return std::any_of( first, last, std::bind( std::equal_to<>(), _1,=
=20
>> value ) );=20
>> }
>>
>>
>> template <typename InputIterator, typename T>
>> inline bool any_not_equal_to( InputIterator first, InputIterator last,=
=20
>> const T &value )
>> {
>>     using namespace std::placeholders;
>>     return std::any_of( first, last, std::bind( std::not_equal_to<>(), _=
1
>> , value ) );=20
>> }
>>
>>
>> template <typename InputIterator, typename T>
>> inline bool any_of_greater( InputIterator first, InputIterator last,=20
>> const T &value )
>> {
>>     using namespace std::placeholders;
>>     return std::any_of( first, last, std::bind( std::greater<>(), _1,=20
>> value ) );=20
>> }
>>
>>
>> template <typename InputIterator, typename T>
>> inline bool any_of_less( InputIterator first, InputIterator last, const=
=20
>> T &value )
>> {
>>     using namespace std::placeholders;
>>     return std::any_of( first, last, std::bind( std::less<>(), _1, value=
=20
>> ) );=20
>> }
>>
>>
>> template <typename InputIterator, typename T>
>> inline bool any_of_greater_equal( InputIterator first, InputIterator las=
t
>> , const T &value )
>> {
>>     using namespace std::placeholders;
>>     return std::any_of( first, last, std::bind( std::greater_equal<>(),=
=20
>> _1, value ) );=20
>> }
>>
>>
>> template <typename InputIterator, typename T>
>> inline bool any_of_less_equal( InputIterator first, InputIterator last,=
=20
>> const T &value )
>> {
>>     using namespace std::placeholders;
>>     return std::any_of( first, last, std::bind( std::less_equal<>(), _1,=
=20
>> value ) );=20
>> }
>>
>>
>> int main()
>> {
>>     const size_t N =3D 10;
>>     std::vector<unsigned int> v;
>>     v.reserve( N );
>>    =20
>>     std::srand( ( unsigned int )std::time( nullptr ) );
>>    =20
>>     std::generate_n( std::back_inserter( v ), N, [] { return std::rand()=
=20
>> % N; } );
>>    =20
>>     for ( const auto &item : v ) std::cout << item << ' ';
>>     std::cout << '\n';
>>    =20
>>     unsigned int value =3D std::rand() % N;
>>
>>
>>     if ( any_of_equal_to( std::begin( v ), std::end( v ), value ) )
>>     {
>>         std::cout << value << " is encountered at position "=20
>>                   << std::distance( std::begin( v ), find_equal_to( std:=
:
>> begin( v ), std::end( v ), value ) )
>>                   << '\n';
>>     }
>>     else
>>     {
>>         std::cout << value << " has not been found.\n";
>>     }
>>
>>
>>     if ( any_of_equal_to( std::begin( v ), std::end( v ), value ) )
>>     {
>>         std::cout << "A value not equal to " << value << " is=20
>> encountered at position "=20
>>                   << std::distance( std::begin( v ), find_not_equal_to(=
=20
>> std::begin( v ), std::end( v ), value ) )
>>                   << '\n';
>>     }
>>     else
>>     {
>>         std::cout << "A value not equal to " << value << " has not been=
=20
>> found.\n";
>>     }
>>
>>
>>     if ( any_of_greater( std::begin( v ), std::end( v ), value ) )
>>     {
>>         std::cout << "A value greater than " << value << " is=20
>> encountered at position "=20
>>                   << std::distance( std::begin( v ), find_greater( std::
>> begin( v ), std::end( v ), value ) )
>>                   << '\n';
>>     }
>>     else
>>     {
>>         std::cout << "A value greater than " << value << " has not been=
=20
>> found.\n";
>>     }
>>
>>
>>     if ( any_of_less( std::begin( v ), std::end( v ), value ) )
>>     {
>>         std::cout << "A value less than " << value << " is encountered=
=20
>> at position "=20
>>                   << std::distance( std::begin( v ), find_less( std::
>> begin( v ), std::end( v ), value ) )
>>                   << '\n';
>>     }
>>     else
>>     {
>>         std::cout << "A value less than " << value << " has not been=20
>> found.\n";
>>     }
>>    =20
>>     if ( any_of_greater_equal( std::begin( v ), std::end( v ), value ) )
>>     {
>>         std::cout << "A value greater than or equal to " << value << "=
=20
>> is encountered at position "=20
>>                   << std::distance( std::begin( v ), find_greater_equal(=
=20
>> std::begin( v ), std::end( v ), value ) )
>>                   << '\n';
>>     }
>>     else
>>     {
>>         std::cout << "A value greater than or equal to " << value << "=
=20
>> has not been found.\n";
>>     }
>>
>>
>>     if ( any_of_less_equal( std::begin( v ), std::end( v ), value ) )
>>     {
>>         std::cout << "A value less than or equal to " << value << " is=
=20
>> encountered at position "=20
>>                   << std::distance( std::begin( v ), find_less_equal( st=
d
>> ::begin( v ), std::end( v ), value ) )
>>                   << '\n';
>>     }
>>     else
>>     {
>>         std::cout << "A value less than or equal to " << value << " has=
=20
>> not been found.\n";
>>     }
>> }
>>
>> Its output might look like
>>
>> 6 9 0 2 8 1 2 8 3 4=20
>> 1 is encountered at position 5
>> A value not equal to 1 is encountered at position 0
>> A value greater than 1 is encountered at position 0
>> A value less than 1 is encountered at position 2
>> A value greater than or equal to 1 is encountered at position 0
>> A value less than or equal to 1 is encountered at position 2
>>
>>
>>
>> =D1=81=D1=83=D0=B1=D0=B1=D0=BE=D1=82=D0=B0, 15 =D1=81=D0=B5=D0=BD=D1=82=
=D1=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 12:26:40 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=20
>> Moscow =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>>
>>> There are already standard function object types in the C++ Standard
>>>
>>> template<class T =3D void> struct equal_to;
>>> template<class T =3D void> struct not_equal_to;
>>> template<class T =3D void> struct greater;
>>> template<class T =3D void> struct less;
>>> template<class T =3D void</spa
>>>
>>

--=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/15dd16e8-a336-4f73-91b0-edbf626d7ad3%40isocpp.or=
g.

------=_Part_2740_555419404.1537363293122
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I haven&#39;t yet investigated with the Ranges proposal. C=
ould you show an equivalent code?<br><br>=D1=81=D1=80=D0=B5=D0=B4=D0=B0, 19=
 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 15:39:26 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 Nicolas Lesser =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"auto">Doesn&#39;t the Ranges TS=
 basically render your proposal obsolete? It&#39;s even more composable.</d=
iv><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Wed, Sep 19, 2018, 2:=
32 PM &#39;Vlad from Moscow&#39; via ISO C++ Standard - Future Proposals &l=
t;<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"z3jPKa=
pWCQAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&#39;;r=
eturn true;" onclick=3D"this.href=3D&#39;javascript:&#39;;return true;">std=
-pr...@isocpp.org</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote"=
 style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><d=
iv dir=3D"ltr">Here is a simple demonstrative program<div><br></div><div><d=
iv style=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,187)=
;border-style:solid;border-width:1px;word-wrap:break-word"><code><div><span=
 style=3D"color:#800">#include</span><span style=3D"color:#000"> </span><sp=
an style=3D"color:#080">&lt;iostream&gt;</span><span style=3D"color:#000"><=
br></span><span style=3D"color:#800">#include</span><span style=3D"color:#0=
00"> </span><span style=3D"color:#080">&lt;vector&gt;</span><span style=3D"=
color:#000"><br></span><span style=3D"color:#800">#include</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#080">&lt;functional&gt;</spa=
n><span style=3D"color:#000"><br></span><span style=3D"color:#800">#include=
</span><span style=3D"color:#000"> </span><span style=3D"color:#080">&lt;it=
erator&gt;</span><span style=3D"color:#000"><br></span><span style=3D"color=
:#800">#include</span><span style=3D"color:#000"> </span><span style=3D"col=
or:#080">&lt;algorithm&gt;</span><span style=3D"color:#000"><br></span><spa=
n style=3D"color:#800">#include</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#080">&lt;ctime&gt;</span><span style=3D"color:#000"><br=
></span><span style=3D"color:#800">#include</span><span style=3D"color:#000=
"> </span><span style=3D"color:#080">&lt;cstdlib&gt;</span><span style=3D"c=
olor:#000"><br><br><br></span><span style=3D"color:#008">template</span><sp=
an style=3D"color:#000"> </span><span style=3D"color:#660">&lt;</span><span=
 style=3D"color:#008">typename</span><span style=3D"color:#000"> </span><sp=
an style=3D"color:#606">InputIterator</span><span style=3D"color:#660">,</s=
pan><span style=3D"color:#000"> </span><span style=3D"color:#008">typename<=
/span><span style=3D"color:#000"> T</span><span style=3D"color:#660">&gt;</=
span><span style=3D"color:#000"><br></span><span style=3D"color:#008">inlin=
e</span><span style=3D"color:#000"> </span><span style=3D"color:#606">Input=
Iterator</span><span style=3D"color:#000"> find_equal_to</span><span style=
=3D"color:#660">(</span><span style=3D"color:#000"> </span><span style=3D"c=
olor:#606">InputIterator</span><span style=3D"color:#000"> first</span><spa=
n style=3D"color:#660">,</span><span style=3D"color:#000"> </span><span sty=
le=3D"color:#606">InputIterator</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#008">last</span><span style=3D"color:#660">,</span><spa=
n style=3D"color:#000"> </span><span style=3D"color:#008">const</span><span=
 style=3D"color:#000"> T </span><span style=3D"color:#660">&amp;</span><spa=
n style=3D"color:#000">value </span><span style=3D"color:#660">)</span><spa=
n style=3D"color:#000"><br></span><span style=3D"color:#660">{</span><span =
style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">re=
turn</span><span style=3D"color:#000"> std</span><span style=3D"color:#660"=
>::</span><span style=3D"color:#000">find</span><span style=3D"color:#660">=
(</span><span style=3D"color:#000"> first</span><span style=3D"color:#660">=
,</span><span style=3D"color:#000"> </span><span style=3D"color:#008">last<=
/span><span style=3D"color:#660">,</span><span style=3D"color:#000"> value =
</span><span style=3D"color:#660">);</span><span style=3D"color:#000"> <br>=
</span><span style=3D"color:#660">}</span><span style=3D"color:#000"><br><b=
r><br></span><span style=3D"color:#008">template</span><span style=3D"color=
:#000"> </span><span style=3D"color:#660">&lt;</span><span style=3D"color:#=
008">typename</span><span style=3D"color:#000"> </span><span style=3D"color=
:#606">InputIterator</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000"> </span><span style=3D"color:#008">typename</span><span sty=
le=3D"color:#000"> T</span><span style=3D"color:#660">&gt;</span><span styl=
e=3D"color:#000"><br></span><span style=3D"color:#008">inline</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</span>=
<span style=3D"color:#000"> find_not_equal_to</span><span style=3D"color:#6=
60">(</span><span style=3D"color:#000"> </span><span style=3D"color:#606">I=
nputIterator</span><span style=3D"color:#000"> first</span><span style=3D"c=
olor:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color:=
#606">InputIterator</span><span style=3D"color:#000"> </span><span style=3D=
"color:#008">last</span><span style=3D"color:#660">,</span><span style=3D"c=
olor:#000"> </span><span style=3D"color:#008">const</span><span style=3D"co=
lor:#000"> T </span><span style=3D"color:#660">&amp;</span><span style=3D"c=
olor:#000">value </span><span style=3D"color:#660">)</span><span style=3D"c=
olor:#000"><br></span><span style=3D"color:#660">{</span><span style=3D"col=
or:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">using</span><s=
pan style=3D"color:#000"> </span><span style=3D"color:#008">namespace</span=
><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</span>=
<span style=3D"color:#000">placeholders</span><span style=3D"color:#660">;<=
/span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"co=
lor:#008">return</span><span style=3D"color:#000"> std</span><span style=3D=
"color:#660">::</span><span style=3D"color:#000">find_if</span><span style=
=3D"color:#660">(</span><span style=3D"color:#000"> first</span><span style=
=3D"color:#660">,</span><span style=3D"color:#000"> </span><span style=3D"c=
olor:#008">last</span><span style=3D"color:#660">,</span><span style=3D"col=
or:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"colo=
r:#000">bind</span><span style=3D"color:#660">(</span><span style=3D"color:=
#000"> std</span><span style=3D"color:#660">::</span><span style=3D"color:#=
000">not_equal_to</span><span style=3D"color:#660">&lt;&gt;(),</span><span =
style=3D"color:#000"> _1</span><span style=3D"color:#660">,</span><span sty=
le=3D"color:#000"> value </span><span style=3D"color:#660">)</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#660">);</span><span style=
=3D"color:#000"> <br></span><span style=3D"color:#660">}</span><span style=
=3D"color:#000"><br><br><br></span><span style=3D"color:#008">template</spa=
n><span style=3D"color:#000"> </span><span style=3D"color:#660">&lt;</span>=
<span style=3D"color:#008">typename</span><span style=3D"color:#000"> </spa=
n><span style=3D"color:#606">InputIterator</span><span style=3D"color:#660"=
>,</span><span style=3D"color:#000"> </span><span style=3D"color:#008">type=
name</span><span style=3D"color:#000"> T</span><span style=3D"color:#660">&=
gt;</span><span style=3D"color:#000"><br></span><span style=3D"color:#008">=
inline</span><span style=3D"color:#000"> </span><span style=3D"color:#606">=
InputIterator</span><span style=3D"color:#000"> find_greater</span><span st=
yle=3D"color:#660">(</span><span style=3D"color:#000"> </span><span style=
=3D"color:#606">InputIterator</span><span style=3D"color:#000"> first</span=
><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span><spa=
n style=3D"color:#606">InputIterator</span><span style=3D"color:#000"> </sp=
an><span style=3D"color:#008">last</span><span style=3D"color:#660">,</span=
><span style=3D"color:#000"> </span><span style=3D"color:#008">const</span>=
<span style=3D"color:#000"> T </span><span style=3D"color:#660">&amp;</span=
><span style=3D"color:#000">value </span><span style=3D"color:#660">)</span=
><span style=3D"color:#000"><br></span><span style=3D"color:#660">{</span><=
span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#00=
8">using</span><span style=3D"color:#000"> </span><span style=3D"color:#008=
">namespace</span><span style=3D"color:#000"> std</span><span style=3D"colo=
r:#660">::</span><span style=3D"color:#000">placeholders</span><span style=
=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span=
><span style=3D"color:#008">return</span><span style=3D"color:#000"> std</s=
pan><span style=3D"color:#660">::</span><span style=3D"color:#000">find_if<=
/span><span style=3D"color:#660">(</span><span style=3D"color:#000"> first<=
/span><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span=
><span style=3D"color:#008">last</span><span style=3D"color:#660">,</span><=
span style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><s=
pan style=3D"color:#000">bind</span><span style=3D"color:#660">(</span><spa=
n style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span=
 style=3D"color:#000">greater</span><span style=3D"color:#660">&lt;&gt;(),<=
/span><span style=3D"color:#000"> _1</span><span style=3D"color:#660">,</sp=
an><span style=3D"color:#000"> value </span><span style=3D"color:#660">)</s=
pan><span style=3D"color:#000"> </span><span style=3D"color:#660">);</span>=
<span style=3D"color:#000"> <br></span><span style=3D"color:#660">}</span><=
span style=3D"color:#000"><br><br><br></span><span style=3D"color:#008">tem=
plate</span><span style=3D"color:#000"> </span><span style=3D"color:#660">&=
lt;</span><span style=3D"color:#008">typename</span><span style=3D"color:#0=
00"> </span><span style=3D"color:#606">InputIterator</span><span style=3D"c=
olor:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color:=
#008">typename</span><span style=3D"color:#000"> T</span><span style=3D"col=
or:#660">&gt;</span><span style=3D"color:#000"><br></span><span style=3D"co=
lor:#008">inline</span><span style=3D"color:#000"> </span><span style=3D"co=
lor:#606">InputIterator</span><span style=3D"color:#000"> find_less</span><=
span style=3D"color:#660">(</span><span style=3D"color:#000"> </span><span =
style=3D"color:#606">InputIterator</span><span style=3D"color:#000"> first<=
/span><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span=
><span style=3D"color:#606">InputIterator</span><span style=3D"color:#000">=
 </span><span style=3D"color:#008">last</span><span style=3D"color:#660">,<=
/span><span style=3D"color:#000"> </span><span style=3D"color:#008">const</=
span><span style=3D"color:#000"> T </span><span style=3D"color:#660">&amp;<=
/span><span style=3D"color:#000">value </span><span style=3D"color:#660">)<=
/span><span style=3D"color:#000"><br></span><span style=3D"color:#660">{</s=
pan><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"colo=
r:#008">using</span><span style=3D"color:#000"> </span><span style=3D"color=
:#008">namespace</span><span style=3D"color:#000"> std</span><span style=3D=
"color:#660">::</span><span style=3D"color:#000">placeholders</span><span s=
tyle=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </=
span><span style=3D"color:#008">return</span><span style=3D"color:#000"> st=
d</span><span style=3D"color:#660">::</span><span style=3D"color:#000">find=
_if</span><span style=3D"color:#660">(</span><span style=3D"color:#000"> fi=
rst</span><span style=3D"color:#660">,</span><span style=3D"color:#000"> </=
span><span style=3D"color:#008">last</span><span style=3D"color:#660">,</sp=
an><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</spa=
n><span style=3D"color:#000">bind</span><span style=3D"color:#660">(</span>=
<span style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><=
span style=3D"color:#000">less</span><span style=3D"color:#660">&lt;&gt;(),=
</span><span style=3D"color:#000"> _1</span><span style=3D"color:#660">,</s=
pan><span style=3D"color:#000"> value </span><span style=3D"color:#660">)</=
span><span style=3D"color:#000"> </span><span style=3D"color:#660">);</span=
><span style=3D"color:#000"> <br></span><span style=3D"color:#660">}</span>=
<span style=3D"color:#000"><br><br><br></span><span style=3D"color:#008">te=
mplate</span><span style=3D"color:#000"> </span><span style=3D"color:#660">=
&lt;</span><span style=3D"color:#008">typename</span><span style=3D"color:#=
000"> </span><span style=3D"color:#606">InputIterator</span><span style=3D"=
color:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color=
:#008">typename</span><span style=3D"color:#000"> T</span><span style=3D"co=
lor:#660">&gt;</span><span style=3D"color:#000"><br></span><span style=3D"c=
olor:#008">inline</span><span style=3D"color:#000"> </span><span style=3D"c=
olor:#606">InputIterator</span><span style=3D"color:#000"> find_greater_equ=
al</span><span style=3D"color:#660">(</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#606">InputIterator</span><span style=3D"color:#00=
0"> first</span><span style=3D"color:#660">,</span><span style=3D"color:#00=
0"> </span><span style=3D"color:#606">InputIterator</span><span style=3D"co=
lor:#000"> </span><span style=3D"color:#008">last</span><span style=3D"colo=
r:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color:#00=
8">const</span><span style=3D"color:#000"> T </span><span style=3D"color:#6=
60">&amp;</span><span style=3D"color:#000">value </span><span style=3D"colo=
r:#660">)</span><span style=3D"color:#000"><br></span><span style=3D"color:=
#660">{</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span sty=
le=3D"color:#008">using</span><span style=3D"color:#000"> </span><span styl=
e=3D"color:#008">namespace</span><span style=3D"color:#000"> std</span><spa=
n style=3D"color:#660">::</span><span style=3D"color:#000">placeholders</sp=
an><span style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0=
 =C2=A0 </span><span style=3D"color:#008">return</span><span style=3D"color=
:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"color:=
#000">find_if</span><span style=3D"color:#660">(</span><span style=3D"color=
:#000"> first</span><span style=3D"color:#660">,</span><span style=3D"color=
:#000"> </span><span style=3D"color:#008">last</span><span style=3D"color:#=
660">,</span><span style=3D"color:#000"> std</span><span style=3D"color:#66=
0">::</span><span style=3D"color:#000">bind</span><span style=3D"color:#660=
">(</span><span style=3D"color:#000"> std</span><span style=3D"color:#660">=
::</span><span style=3D"color:#000">greater_equal</span><span style=3D"colo=
r:#660">&lt;&gt;(),</span><span style=3D"color:#000"> _1</span><span style=
=3D"color:#660">,</span><span style=3D"color:#000"> value </span><span styl=
e=3D"color:#660">)</span><span style=3D"color:#000"> </span><span style=3D"=
color:#660">);</span><span style=3D"color:#000"> <br></span><span style=3D"=
color:#660">}</span><span style=3D"color:#000"><br><br><br></span><span sty=
le=3D"color:#008">template</span><span style=3D"color:#000"> </span><span s=
tyle=3D"color:#660">&lt;</span><span style=3D"color:#008">typename</span><s=
pan style=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</=
span><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span>=
<span style=3D"color:#008">typename</span><span style=3D"color:#000"> T</sp=
an><span style=3D"color:#660">&gt;</span><span style=3D"color:#000"><br></s=
pan><span style=3D"color:#008">inline</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#606">InputIterator</span><span style=3D"color:#00=
0"> find_less_equal</span><span style=3D"color:#660">(</span><span style=3D=
"color:#000"> </span><span style=3D"color:#606">InputIterator</span><span s=
tyle=3D"color:#000"> first</span><span style=3D"color:#660">,</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</span>=
<span style=3D"color:#000"> </span><span style=3D"color:#008">last</span><s=
pan style=3D"color:#660">,</span><span style=3D"color:#000"> </span><span s=
tyle=3D"color:#008">const</span><span style=3D"color:#000"> T </span><span =
style=3D"color:#660">&amp;</span><span style=3D"color:#000">value </span><s=
pan style=3D"color:#660">)</span><span style=3D"color:#000"><br></span><spa=
n style=3D"color:#660">{</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0=
 </span><span style=3D"color:#008">using</span><span style=3D"color:#000"> =
</span><span style=3D"color:#008">namespace</span><span style=3D"color:#000=
"> std</span><span style=3D"color:#660">::</span><span style=3D"color:#000"=
>placeholders</span><span style=3D"color:#660">;</span><span style=3D"color=
:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">return</span><sp=
an style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><spa=
n style=3D"color:#000">find_if</span><span style=3D"color:#660">(</span><sp=
an style=3D"color:#000"> first</span><span style=3D"color:#660">,</span><sp=
an style=3D"color:#000"> </span><span style=3D"color:#008">last</span><span=
 style=3D"color:#660">,</span><span style=3D"color:#000"> std</span><span s=
tyle=3D"color:#660">::</span><span style=3D"color:#000">bind</span><span st=
yle=3D"color:#660">(</span><span style=3D"color:#000"> std</span><span styl=
e=3D"color:#660">::</span><span style=3D"color:#000">less_equal</span><span=
 style=3D"color:#660">&lt;&gt;(),</span><span style=3D"color:#000"> _1</spa=
n><span style=3D"color:#660">,</span><span style=3D"color:#000"> value </sp=
an><span style=3D"color:#660">)</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#660">);</span><span style=3D"color:#000"> <br></span><s=
pan style=3D"color:#660">}</span><span style=3D"color:#000"><br><br><br></s=
pan><span style=3D"color:#008">template</span><span style=3D"color:#000"> <=
/span><span style=3D"color:#660">&lt;</span><span style=3D"color:#008">type=
name</span><span style=3D"color:#000"> </span><span style=3D"color:#606">In=
putIterator</span><span style=3D"color:#660">,</span><span style=3D"color:#=
000"> </span><span style=3D"color:#008">typename</span><span style=3D"color=
:#000"> T</span><span style=3D"color:#660">&gt;</span><span style=3D"color:=
#000"><br></span><span style=3D"color:#008">inline</span><span style=3D"col=
or:#000"> </span><span style=3D"color:#008">bool</span><span style=3D"color=
:#000"> any_of_equal_to</span><span style=3D"color:#660">(</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</span><sp=
an style=3D"color:#000"> first</span><span style=3D"color:#660">,</span><sp=
an style=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</s=
pan><span style=3D"color:#000"> </span><span style=3D"color:#008">last</spa=
n><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span><sp=
an style=3D"color:#008">const</span><span style=3D"color:#000"> T </span><s=
pan style=3D"color:#660">&amp;</span><span style=3D"color:#000">value </spa=
n><span style=3D"color:#660">)</span><span style=3D"color:#000"><br></span>=
<span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=C2=A0 =
=C2=A0 </span><span style=3D"color:#008">using</span><span style=3D"color:#=
000"> </span><span style=3D"color:#008">namespace</span><span style=3D"colo=
r:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"color=
:#000">placeholders</span><span style=3D"color:#660">;</span><span style=3D=
"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">return</sp=
an><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</spa=
n><span style=3D"color:#000">any_of</span><span style=3D"color:#660">(</spa=
n><span style=3D"color:#000"> first</span><span style=3D"color:#660">,</spa=
n><span style=3D"color:#000"> </span><span style=3D"color:#008">last</span>=
<span style=3D"color:#660">,</span><span style=3D"color:#000"> std</span><s=
pan style=3D"color:#660">::</span><span style=3D"color:#000">bind</span><sp=
an style=3D"color:#660">(</span><span style=3D"color:#000"> std</span><span=
 style=3D"color:#660">::</span><span style=3D"color:#000">equal_to</span><s=
pan style=3D"color:#660">&lt;&gt;(),</span><span style=3D"color:#000"> _1</=
span><span style=3D"color:#660">,</span><span style=3D"color:#000"> value <=
/span><span style=3D"color:#660">)</span><span style=3D"color:#000"> </span=
><span style=3D"color:#660">);</span><span style=3D"color:#000"> <br></span=
><span style=3D"color:#660">}</span><span style=3D"color:#000"><br><br><br>=
</span><span style=3D"color:#008">template</span><span style=3D"color:#000"=
> </span><span style=3D"color:#660">&lt;</span><span style=3D"color:#008">t=
ypename</span><span style=3D"color:#000"> </span><span style=3D"color:#606"=
>InputIterator</span><span style=3D"color:#660">,</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:#008">typename</span><span style=3D"co=
lor:#000"> T</span><span style=3D"color:#660">&gt;</span><span style=3D"col=
or:#000"><br></span><span style=3D"color:#008">inline</span><span style=3D"=
color:#000"> </span><span style=3D"color:#008">bool</span><span style=3D"co=
lor:#000"> any_not_equal_to</span><span style=3D"color:#660">(</span><span =
style=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</span=
><span style=3D"color:#000"> first</span><span style=3D"color:#660">,</span=
><span style=3D"color:#000"> </span><span style=3D"color:#606">InputIterato=
r</span><span style=3D"color:#000"> </span><span style=3D"color:#008">last<=
/span><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span=
><span style=3D"color:#008">const</span><span style=3D"color:#000"> T </spa=
n><span style=3D"color:#660">&amp;</span><span style=3D"color:#000">value <=
/span><span style=3D"color:#660">)</span><span style=3D"color:#000"><br></s=
pan><span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#008">using</span><span style=3D"col=
or:#000"> </span><span style=3D"color:#008">namespace</span><span style=3D"=
color:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"c=
olor:#000">placeholders</span><span style=3D"color:#660">;</span><span styl=
e=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">return=
</span><span style=3D"color:#000"> std</span><span style=3D"color:#660">::<=
/span><span style=3D"color:#000">any_of</span><span style=3D"color:#660">(<=
/span><span style=3D"color:#000"> first</span><span style=3D"color:#660">,<=
/span><span style=3D"color:#000"> </span><span style=3D"color:#008">last</s=
pan><span style=3D"color:#660">,</span><span style=3D"color:#000"> std</spa=
n><span style=3D"color:#660">::</span><span style=3D"color:#000">bind</span=
><span style=3D"color:#660">(</span><span style=3D"color:#000"> std</span><=
span style=3D"color:#660">::</span><span style=3D"color:#000">not_equal_to<=
/span><span style=3D"color:#660">&lt;&gt;(),</span><span style=3D"color:#00=
0"> _1</span><span style=3D"color:#660">,</span><span style=3D"color:#000">=
 value </span><span style=3D"color:#660">)</span><span style=3D"color:#000"=
> </span><span style=3D"color:#660">);</span><span style=3D"color:#000"> <b=
r></span><span style=3D"color:#660">}</span><span style=3D"color:#000"><br>=
<br><br></span><span style=3D"color:#008">template</span><span style=3D"col=
or:#000"> </span><span style=3D"color:#660">&lt;</span><span style=3D"color=
:#008">typename</span><span style=3D"color:#000"> </span><span style=3D"col=
or:#606">InputIterator</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000"> </span><span style=3D"color:#008">typename</span><span sty=
le=3D"color:#000"> T</span><span style=3D"color:#660">&gt;</span><span styl=
e=3D"color:#000"><br></span><span style=3D"color:#008">inline</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#008">bool</span><span sty=
le=3D"color:#000"> any_of_greater</span><span style=3D"color:#660">(</span>=
<span style=3D"color:#000"> </span><span style=3D"color:#606">InputIterator=
</span><span style=3D"color:#000"> first</span><span style=3D"color:#660">,=
</span><span style=3D"color:#000"> </span><span style=3D"color:#606">InputI=
terator</span><span style=3D"color:#000"> </span><span style=3D"color:#008"=
>last</span><span style=3D"color:#660">,</span><span style=3D"color:#000"> =
</span><span style=3D"color:#008">const</span><span style=3D"color:#000"> T=
 </span><span style=3D"color:#660">&amp;</span><span style=3D"color:#000">v=
alue </span><span style=3D"color:#660">)</span><span style=3D"color:#000"><=
br></span><span style=3D"color:#660">{</span><span style=3D"color:#000"><br=
>=C2=A0 =C2=A0 </span><span style=3D"color:#008">using</span><span style=3D=
"color:#000"> </span><span style=3D"color:#008">namespace</span><span style=
=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span style=
=3D"color:#000">placeholders</span><span style=3D"color:#660">;</span><span=
 style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">r=
eturn</span><span style=3D"color:#000"> std</span><span style=3D"color:#660=
">::</span><span style=3D"color:#000">any_of</span><span style=3D"color:#66=
0">(</span><span style=3D"color:#000"> first</span><span style=3D"color:#66=
0">,</span><span style=3D"color:#000"> </span><span style=3D"color:#008">la=
st</span><span style=3D"color:#660">,</span><span style=3D"color:#000"> std=
</span><span style=3D"color:#660">::</span><span style=3D"color:#000">bind<=
/span><span style=3D"color:#660">(</span><span style=3D"color:#000"> std</s=
pan><span style=3D"color:#660">::</span><span style=3D"color:#000">greater<=
/span><span style=3D"color:#660">&lt;&gt;(),</span><span style=3D"color:#00=
0"> _1</span><span style=3D"color:#660">,</span><span style=3D"color:#000">=
 value </span><span style=3D"color:#660">)</span><span style=3D"color:#000"=
> </span><span style=3D"color:#660">);</span><span style=3D"color:#000"> <b=
r></span><span style=3D"color:#660">}</span><span style=3D"color:#000"><br>=
<br><br></span><span style=3D"color:#008">template</span><span style=3D"col=
or:#000"> </span><span style=3D"color:#660">&lt;</span><span style=3D"color=
:#008">typename</span><span style=3D"color:#000"> </span><span style=3D"col=
or:#606">InputIterator</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000"> </span><span style=3D"color:#008">typename</span><span sty=
le=3D"color:#000"> T</span><span style=3D"color:#660">&gt;</span><span styl=
e=3D"color:#000"><br></span><span style=3D"color:#008">inline</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#008">bool</span><span sty=
le=3D"color:#000"> any_of_less</span><span style=3D"color:#660">(</span><sp=
an style=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</s=
pan><span style=3D"color:#000"> first</span><span style=3D"color:#660">,</s=
pan><span style=3D"color:#000"> </span><span style=3D"color:#606">InputIter=
ator</span><span style=3D"color:#000"> </span><span style=3D"color:#008">la=
st</span><span style=3D"color:#660">,</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#008">const</span><span style=3D"color:#000"> T </=
span><span style=3D"color:#660">&amp;</span><span style=3D"color:#000">valu=
e </span><span style=3D"color:#660">)</span><span style=3D"color:#000"><br>=
</span><span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=
=C2=A0 =C2=A0 </span><span style=3D"color:#008">using</span><span style=3D"=
color:#000"> </span><span style=3D"color:#008">namespace</span><span style=
=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span style=
=3D"color:#000">placeholders</span><span style=3D"color:#660">;</span><span=
 style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">r=
eturn</span><span style=3D"color:#000"> std</span><span style=3D"color:#660=
">::</span><span style=3D"color:#000">any_of</span><span style=3D"color:#66=
0">(</span><span style=3D"color:#000"> first</span><span style=3D"color:#66=
0">,</span><span style=3D"color:#000"> </span><span style=3D"color:#008">la=
st</span><span style=3D"color:#660">,</span><span style=3D"color:#000"> std=
</span><span style=3D"color:#660">::</span><span style=3D"color:#000">bind<=
/span><span style=3D"color:#660">(</span><span style=3D"color:#000"> std</s=
pan><span style=3D"color:#660">::</span><span style=3D"color:#000">less</sp=
an><span style=3D"color:#660">&lt;&gt;(),</span><span style=3D"color:#000">=
 _1</span><span style=3D"color:#660">,</span><span style=3D"color:#000"> va=
lue </span><span style=3D"color:#660">)</span><span style=3D"color:#000"> <=
/span><span style=3D"color:#660">);</span><span style=3D"color:#000"> <br><=
/span><span style=3D"color:#660">}</span><span style=3D"color:#000"><br><br=
><br></span><span style=3D"color:#008">template</span><span style=3D"color:=
#000"> </span><span style=3D"color:#660">&lt;</span><span style=3D"color:#0=
08">typename</span><span style=3D"color:#000"> </span><span style=3D"color:=
#606">InputIterator</span><span style=3D"color:#660">,</span><span style=3D=
"color:#000"> </span><span style=3D"color:#008">typename</span><span style=
=3D"color:#000"> T</span><span style=3D"color:#660">&gt;</span><span style=
=3D"color:#000"><br></span><span style=3D"color:#008">inline</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#008">bool</span><span styl=
e=3D"color:#000"> any_of_greater_equal</span><span style=3D"color:#660">(</=
span><span style=3D"color:#000"> </span><span style=3D"color:#606">InputIte=
rator</span><span style=3D"color:#000"> first</span><span style=3D"color:#6=
60">,</span><span style=3D"color:#000"> </span><span style=3D"color:#606">I=
nputIterator</span><span style=3D"color:#000"> </span><span style=3D"color:=
#008">last</span><span style=3D"color:#660">,</span><span style=3D"color:#0=
00"> </span><span style=3D"color:#008">const</span><span style=3D"color:#00=
0"> T </span><span style=3D"color:#660">&amp;</span><span style=3D"color:#0=
00">value </span><span style=3D"color:#660">)</span><span style=3D"color:#0=
00"><br></span><span style=3D"color:#660">{</span><span style=3D"color:#000=
"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">using</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#008">namespace</span><span =
style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span s=
tyle=3D"color:#000">placeholders</span><span style=3D"color:#660">;</span><=
span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#00=
8">return</span><span style=3D"color:#000"> std</span><span style=3D"color:=
#660">::</span><span style=3D"color:#000">any_of</span><span style=3D"color=
:#660">(</span><span style=3D"color:#000"> first</span><span style=3D"color=
:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color:#008=
">last</span><span style=3D"color:#660">,</span><span style=3D"color:#000">=
 std</span><span style=3D"color:#660">::</span><span style=3D"color:#000">b=
ind</span><span style=3D"color:#660">(</span><span style=3D"color:#000"> st=
d</span><span style=3D"color:#660">::</span><span style=3D"color:#000">grea=
ter_equal</span><span style=3D"color:#660">&lt;&gt;(),</span><span style=3D=
"color:#000"> _1</span><span style=3D"color:#660">,</span><span style=3D"co=
lor:#000"> value </span><span style=3D"color:#660">)</span><span style=3D"c=
olor:#000"> </span><span style=3D"color:#660">);</span><span style=3D"color=
:#000"> <br></span><span style=3D"color:#660">}</span><span style=3D"color:=
#000"><br><br><br></span><span style=3D"color:#008">template</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#660">&lt;</span><span styl=
e=3D"color:#008">typename</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#606">InputIterator</span><span style=3D"color:#660">,</span><=
span style=3D"color:#000"> </span><span style=3D"color:#008">typename</span=
><span style=3D"color:#000"> T</span><span style=3D"color:#660">&gt;</span>=
<span style=3D"color:#000"><br></span><span style=3D"color:#008">inline</sp=
an><span style=3D"color:#000"> </span><span style=3D"color:#008">bool</span=
><span style=3D"color:#000"> any_of_less_equal</span><span style=3D"color:#=
660">(</span><span style=3D"color:#000"> </span><span style=3D"color:#606">=
InputIterator</span><span style=3D"color:#000"> first</span><span style=3D"=
color:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color=
:#606">InputIterator</span><span style=3D"color:#000"> </span><span style=
=3D"color:#008">last</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000"> </span><span style=3D"color:#008">const</span><span style=
=3D"color:#000"> T </span><span style=3D"color:#660">&amp;</span><span styl=
e=3D"color:#000">value </span><span style=3D"color:#660">)</span><span styl=
e=3D"color:#000"><br></span><span style=3D"color:#660">{</span><span style=
=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">using</=
span><span style=3D"color:#000"> </span><span style=3D"color:#008">namespac=
e</span><span style=3D"color:#000"> std</span><span style=3D"color:#660">::=
</span><span style=3D"color:#000">placeholders</span><span style=3D"color:#=
660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span styl=
e=3D"color:#008">return</span><span style=3D"color:#000"> std</span><span s=
tyle=3D"color:#660">::</span><span style=3D"color:#000">any_of</span><span =
style=3D"color:#660">(</span><span style=3D"color:#000"> first</span><span =
style=3D"color:#660">,</span><span style=3D"color:#000"> </span><span style=
=3D"color:#008">last</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span style=
=3D"color:#000">bind</span><span style=3D"color:#660">(</span><span style=
=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span style=
=3D"color:#000">less_equal</span><span style=3D"color:#660">&lt;&gt;(),</sp=
an><span style=3D"color:#000"> _1</span><span style=3D"color:#660">,</span>=
<span style=3D"color:#000"> value </span><span style=3D"color:#660">)</span=
><span style=3D"color:#000"> </span><span style=3D"color:#660">);</span><sp=
an style=3D"color:#000"> <br></span><span style=3D"color:#660">}</span><spa=
n style=3D"color:#000"><br><br><br></span><span style=3D"color:#008">int</s=
pan><span style=3D"color:#000"> main</span><span style=3D"color:#660">()</s=
pan><span style=3D"color:#000"><br></span><span style=3D"color:#660">{</spa=
n><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:=
#008">const</span><span style=3D"color:#000"> size_t N </span><span style=
=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span style=3D=
"color:#066">10</span><span style=3D"color:#660">;</span><span style=3D"col=
or:#000"><br>=C2=A0 =C2=A0 std</span><span style=3D"color:#660">::</span><s=
pan style=3D"color:#000">vector</span><span style=3D"color:#660">&lt;</span=
><span style=3D"color:#008">unsigned</span><span style=3D"color:#000"> </sp=
an><span style=3D"color:#008">int</span><span style=3D"color:#660">&gt;</sp=
an><span style=3D"color:#000"> v</span><span style=3D"color:#660">;</span><=
span style=3D"color:#000"><br>=C2=A0 =C2=A0 v</span><span style=3D"color:#6=
60">.</span><span style=3D"color:#000">reserve</span><span style=3D"color:#=
660">(</span><span style=3D"color:#000"> N </span><span style=3D"color:#660=
">);</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 s=
td</span><span style=3D"color:#660">::</span><span style=3D"color:#000">sra=
nd</span><span style=3D"color:#660">(</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#660">(</span><span style=3D"color:#000"> </span><=
span style=3D"color:#008">unsigned</span><span style=3D"color:#000"> </span=
><span style=3D"color:#008">int</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#660">)</span><span style=3D"color:#000">std</span><span=
 style=3D"color:#660">::</span><span style=3D"color:#000">time</span><span =
style=3D"color:#660">(</span><span style=3D"color:#000"> </span><span style=
=3D"color:#008">nullptr</span><span style=3D"color:#000"> </span><span styl=
e=3D"color:#660">)</span><span style=3D"color:#000"> </span><span style=3D"=
color:#660">);</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 <br>=C2=
=A0 =C2=A0 std</span><span style=3D"color:#660">::</span><span style=3D"col=
or:#000">generate_n</span><span style=3D"color:#660">(</span><span style=3D=
"color:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"=
color:#000">back_inserter</span><span style=3D"color:#660">(</span><span st=
yle=3D"color:#000"> v </span><span style=3D"color:#660">),</span><span styl=
e=3D"color:#000"> N</span><span style=3D"color:#660">,</span><span style=3D=
"color:#000"> </span><span style=3D"color:#660">[]</span><span style=3D"col=
or:#000"> </span><span style=3D"color:#660">{</span><span style=3D"color:#0=
00"> </span><span style=3D"color:#008">return</span><span style=3D"color:#0=
00"> std</span><span style=3D"color:#660">::</span><span style=3D"color:#00=
0">rand</span><span style=3D"color:#660">()</span><span style=3D"color:#000=
"> </span><span style=3D"color:#660">%</span><span style=3D"color:#000"> N<=
/span><span style=3D"color:#660">;</span><span style=3D"color:#000"> </span=
><span style=3D"color:#660">}</span><span style=3D"color:#000"> </span><spa=
n style=3D"color:#660">);</span><span style=3D"color:#000"><br>=C2=A0 =C2=
=A0 <br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">for</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#660">(</span><span style=3D=
"color:#000"> </span><span style=3D"color:#008">const</span><span style=3D"=
color:#000"> </span><span style=3D"color:#008">auto</span><span style=3D"co=
lor:#000"> </span><span style=3D"color:#660">&amp;</span><span style=3D"col=
or:#000">item </span><span style=3D"color:#660">:</span><span style=3D"colo=
r:#000"> v </span><span style=3D"color:#660">)</span><span style=3D"color:#=
000"> std</span><span style=3D"color:#660">::</span><span style=3D"color:#0=
00">cout </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"co=
lor:#000"> item </span><span style=3D"color:#660">&lt;&lt;</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#080">&#39; &#39;</span><span=
 style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =
std</span><span style=3D"color:#660">::</span><span style=3D"color:#000">co=
ut </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#0=
00"> </span><span style=3D"color:#080">&#39;\n&#39;</span><span style=3D"co=
lor:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 <br>=C2=A0 =
=C2=A0 </span><span style=3D"color:#008">unsigned</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:#008">int</span><span style=3D"color:#=
000"> value </span><span style=3D"color:#660">=3D</span><span style=3D"colo=
r:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"color=
:#000">rand</span><span style=3D"color:#660">()</span><span style=3D"color:=
#000"> </span><span style=3D"color:#660">%</span><span style=3D"color:#000"=
> N</span><span style=3D"color:#660">;</span><span style=3D"color:#000"><br=
><br><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">if</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#660">(</span><span style=3D=
"color:#000"> any_of_equal_to</span><span style=3D"color:#660">(</span><spa=
n 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"> v </span><span style=3D"color:#660">),</span><span st=
yle=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span sty=
le=3D"color:#008">end</span><span style=3D"color:#660">(</span><span style=
=3D"color:#000"> v </span><span style=3D"color:#660">),</span><span style=
=3D"color:#000"> value </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"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</span><sp=
an style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span sty=
le=3D"color:#660">::</span><span style=3D"color:#000">cout </span><span sty=
le=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> value </span><=
span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span=
><span style=3D"color:#080">&quot; is encountered at position &quot;</span>=
<span style=3D"color:#000"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;</span><span=
 style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span =
style=3D"color:#000">distance</span><span style=3D"color:#660">(</span><spa=
n 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"> v </span><span style=3D"color:#660">),</span><span st=
yle=3D"color:#000"> find_equal_to</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">begin</span><span style=3D"color:#660">(</span><s=
pan style=3D"color:#000"> v </span><span style=3D"color:#660">),</span><spa=
n style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span=
 style=3D"color:#008">end</span><span style=3D"color:#660">(</span><span st=
yle=3D"color:#000"> v </span><span style=3D"color:#660">),</span><span styl=
e=3D"color:#000"> value </span><span style=3D"color:#660">)</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#660">)</span><span style=3D=
"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:#080">&#39;\n&#39;</span><span style=
=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span=
><span style=3D"color:#660">}</span><span style=3D"color:#000"><br>=C2=A0 =
=C2=A0 </span><span style=3D"color:#008">else</span><span style=3D"color:#0=
00"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</span><span style=
=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"co=
lor:#660">::</span><span style=3D"color:#000">cout </span><span style=3D"co=
lor:#660">&lt;&lt;</span><span style=3D"color:#000"> value </span><span sty=
le=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span><span s=
tyle=3D"color:#080">&quot; has not been found.\n&quot;</span><span style=3D=
"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><s=
pan style=3D"color:#660">}</span><span style=3D"color:#000"><br><br><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#008">if</span><span style=3D"color:=
#000"> </span><span style=3D"color:#660">(</span><span style=3D"color:#000"=
> any_of_equal_to</span><span style=3D"color:#660">(</span><span style=3D"c=
olor:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"co=
lor:#008">begin</span><span style=3D"color:#660">(</span><span style=3D"col=
or:#000"> v </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">end</span><span style=3D"color:#660">(</span><span style=3D"color:#00=
0"> v </span><span style=3D"color:#660">),</span><span style=3D"color:#000"=
> value </span><span style=3D"color:#660">)</span><span style=3D"color:#000=
"> </span><span style=3D"color:#660">)</span><span style=3D"color:#000"><br=
>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</span><span style=3D"col=
or:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#66=
0">::</span><span style=3D"color:#000">cout </span><span style=3D"color:#66=
0">&lt;&lt;</span><span style=3D"color:#000"> </span><span style=3D"color:#=
080">&quot;A value not equal to &quot;</span><span style=3D"color:#000"> </=
span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> =
value </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color=
:#000"> </span><span style=3D"color:#080">&quot; is encountered at position=
 &quot;</span><span style=3D"color:#000"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&l=
t;</span><span style=3D"color:#000"> std</span><span style=3D"color:#660">:=
:</span><span style=3D"color:#000">distance</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">begin</span><span style=3D"color:#660">=
(</span><span style=3D"color:#000"> v </span><span style=3D"color:#660">),<=
/span><span style=3D"color:#000"> find_not_equal_to</span><span style=3D"co=
lor:#660">(</span><span style=3D"color:#000"> std</span><span style=3D"colo=
r:#660">::</span><span style=3D"color:#008">begin</span><span style=3D"colo=
r:#660">(</span><span style=3D"color:#000"> v </span><span style=3D"color:#=
660">),</span><span style=3D"color:#000"> std</span><span style=3D"color:#6=
60">::</span><span style=3D"color:#008">end</span><span style=3D"color:#660=
">(</span><span style=3D"color:#000"> v </span><span style=3D"color:#660">)=
,</span><span style=3D"color:#000"> value </span><span style=3D"color:#660"=
>)</span><span style=3D"color:#000"> </span><span style=3D"color:#660">)</s=
pan><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;</span><=
span style=3D"color:#000"> </span><span style=3D"color:#080">&#39;\n&#39;</=
span><span style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#660">}</span><span style=3D"color:#=
000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">else</span><span s=
tyle=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</=
span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><=
span style=3D"color:#660">::</span><span style=3D"color:#000">cout </span><=
span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span=
><span style=3D"color:#080">&quot;A value not equal to &quot;</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#660">&lt;&lt;</span><span=
 style=3D"color:#000"> value </span><span style=3D"color:#660">&lt;&lt;</sp=
an><span style=3D"color:#000"> </span><span style=3D"color:#080">&quot; has=
 not been found.\n&quot;</span><span style=3D"color:#660">;</span><span sty=
le=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">}</sp=
an><span style=3D"color:#000"><br><br><br>=C2=A0 =C2=A0 </span><span style=
=3D"color:#008">if</span><span style=3D"color:#000"> </span><span style=3D"=
color:#660">(</span><span style=3D"color:#000"> any_of_greater</span><span =
style=3D"color:#660">(</span><span style=3D"color:#000"> std</span><span st=
yle=3D"color:#660">::</span><span style=3D"color:#008">begin</span><span st=
yle=3D"color:#660">(</span><span style=3D"color:#000"> v </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">end</span><span style=
=3D"color:#660">(</span><span style=3D"color:#000"> v </span><span style=3D=
"color:#660">),</span><span style=3D"color:#000"> value </span><span style=
=3D"color:#660">)</span><span style=3D"color:#000"> </span><span style=3D"c=
olor:#660">)</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><spa=
n style=3D"color:#660">{</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 std</span><span style=3D"color:#660">::</span><span style=3D=
"color:#000">cout </span><span style=3D"color:#660">&lt;&lt;</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#080">&quot;A value greater=
 than &quot;</span><span style=3D"color:#000"> </span><span style=3D"color:=
#660">&lt;&lt;</span><span style=3D"color:#000"> value </span><span style=
=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span><span sty=
le=3D"color:#080">&quot; is encountered at position &quot;</span><span styl=
e=3D"color:#000"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"=
color:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"c=
olor:#000">distance</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">begin</span><span style=3D"color:#660">(</span><span style=3D"c=
olor:#000"> v </span><span style=3D"color:#660">),</span><span style=3D"col=
or:#000"> find_greater</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">begin</span><span style=3D"color:#660">(</span><span style=
=3D"color:#000"> v </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">end</span><span style=3D"color:#660">(</span><span style=3D=
"color:#000"> v </span><span style=3D"color:#660">),</span><span style=3D"c=
olor:#000"> value </span><span style=3D"color:#660">)</span><span style=3D"=
color:#000"> </span><span style=3D"color:#660">)</span><span style=3D"color=
:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <=
/span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000">=
 </span><span style=3D"color:#080">&#39;\n&#39;</span><span style=3D"color:=
#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span sty=
le=3D"color:#660">}</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </sp=
an><span style=3D"color:#008">else</span><span style=3D"color:#000"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#660">{</span><span style=3D"color:#=
000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660">:=
:</span><span style=3D"color:#000">cout </span><span style=3D"color:#660">&=
lt;&lt;</span><span style=3D"color:#000"> </span><span style=3D"color:#080"=
>&quot;A value greater than &quot;</span><span style=3D"color:#000"> </span=
><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> valu=
e </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#00=
0"> </span><span style=3D"color:#080">&quot; has not been found.\n&quot;</s=
pan><span style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#660">}</span><span style=3D"color:#=
000"><br><br><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">if</span><=
span style=3D"color:#000"> </span><span style=3D"color:#660">(</span><span =
style=3D"color:#000"> any_of_less</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">begin</span><span style=3D"color:#660">(</span><s=
pan style=3D"color:#000"> v </span><span style=3D"color:#660">),</span><spa=
n style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span=
 style=3D"color:#008">end</span><span style=3D"color:#660">(</span><span st=
yle=3D"color:#000"> v </span><span style=3D"color:#660">),</span><span styl=
e=3D"color:#000"> value </span><span style=3D"color:#660">)</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#660">)</span><span style=3D=
"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</span><s=
pan style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span st=
yle=3D"color:#660">::</span><span style=3D"color:#000">cout </span><span st=
yle=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span><span =
style=3D"color:#080">&quot;A value less than &quot;</span><span style=3D"co=
lor:#000"> </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"=
color:#000"> value </span><span style=3D"color:#660">&lt;&lt;</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#080">&quot; is encountere=
d at position &quot;</span><span style=3D"color:#000"> <br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"colo=
r:#660">&lt;&lt;</span><span style=3D"color:#000"> std</span><span style=3D=
"color:#660">::</span><span style=3D"color:#000">distance</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">begin</span><span style=
=3D"color:#660">(</span><span style=3D"color:#000"> v </span><span style=3D=
"color:#660">),</span><span style=3D"color:#000"> find_less</span><span sty=
le=3D"color:#660">(</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"> v </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">end</span><span style=3D"co=
lor:#660">(</span><span style=3D"color:#000"> v </span><span style=3D"color=
:#660">),</span><span style=3D"color:#000"> value </span><span style=3D"col=
or:#660">)</span><span style=3D"color:#000"> </span><span style=3D"color:#6=
60">)</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;<=
/span><span style=3D"color:#000"> </span><span style=3D"color:#080">&#39;\n=
&#39;</span><span style=3D"color:#660">;</span><span style=3D"color:#000"><=
br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">}</span><span style=3D"c=
olor:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">else</span><=
span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#66=
0">{</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</=
span><span style=3D"color:#660">::</span><span style=3D"color:#000">cout </=
span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> =
</span><span style=3D"color:#080">&quot;A value less than &quot;</span><spa=
n style=3D"color:#000"> </span><span style=3D"color:#660">&lt;&lt;</span><s=
pan style=3D"color:#000"> value </span><span style=3D"color:#660">&lt;&lt;<=
/span><span style=3D"color:#000"> </span><span style=3D"color:#080">&quot; =
has not been found.\n&quot;</span><span style=3D"color:#660">;</span><span =
style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">}<=
/span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 </span=
><span style=3D"color:#008">if</span><span style=3D"color:#000"> </span><sp=
an style=3D"color:#660">(</span><span style=3D"color:#000"> any_of_greater_=
equal</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">be=
gin</span><span style=3D"color:#660">(</span><span style=3D"color:#000"> v =
</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">end</s=
pan><span style=3D"color:#660">(</span><span style=3D"color:#000"> v </span=
><span style=3D"color:#660">),</span><span style=3D"color:#000"> value </sp=
an><span style=3D"color:#660">)</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#660">)</span><span style=3D"color:#000"><br>=C2=A0 =C2=
=A0 </span><span style=3D"color:#660">{</span><span style=3D"color:#000"><b=
r>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660">::</span=
><span style=3D"color:#000">cout </span><span style=3D"color:#660">&lt;&lt;=
</span><span style=3D"color:#000"> </span><span style=3D"color:#080">&quot;=
A value greater than or equal to &quot;</span><span style=3D"color:#000"> <=
/span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000">=
 value </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:#080">&quot; is encountered at positio=
n &quot;</span><span style=3D"color:#000"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&l=
t;</span><span style=3D"color:#000"> std</span><span style=3D"color:#660">:=
:</span><span style=3D"color:#000">distance</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">begin</span><span style=3D"color:#660">=
(</span><span style=3D"color:#000"> v </span><span style=3D"color:#660">),<=
/span><span style=3D"color:#000"> find_greater_equal</span><span style=3D"c=
olor:#660">(</span><span style=3D"color:#000"> std</span><span style=3D"col=
or:#660">::</span><span style=3D"color:#008">begin</span><span style=3D"col=
or:#660">(</span><span style=3D"color:#000"> v </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">end</span><span style=3D"color:#66=
0">(</span><span style=3D"color:#000"> v </span><span style=3D"color:#660">=
),</span><span style=3D"color:#000"> value </span><span style=3D"color:#660=
">)</span><span style=3D"color:#000"> </span><span style=3D"color:#660">)</=
span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;</span><=
span style=3D"color:#000"> </span><span style=3D"color:#080">&#39;\n&#39;</=
span><span style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#660">}</span><span style=3D"color:#=
000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">else</span><span s=
tyle=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</=
span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><=
span style=3D"color:#660">::</span><span style=3D"color:#000">cout </span><=
span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span=
><span style=3D"color:#080">&quot;A value greater than or equal to &quot;</=
span><span style=3D"color:#000"> </span><span style=3D"color:#660">&lt;&lt;=
</span><span style=3D"color:#000"> value </span><span style=3D"color:#660">=
&lt;&lt;</span><span style=3D"color:#000"> </span><span style=3D"color:#080=
">&quot; has not been found.\n&quot;</span><span style=3D"color:#660">;</sp=
an><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color=
:#660">}</span><span style=3D"color:#000"><br><br><br>=C2=A0 =C2=A0 </span>=
<span style=3D"color:#008">if</span><span style=3D"color:#000"> </span><spa=
n style=3D"color:#660">(</span><span style=3D"color:#000"> any_of_less_equa=
l</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">begin<=
/span><span style=3D"color:#660">(</span><span style=3D"color:#000"> v </sp=
an><span style=3D"color:#660">),</span><span style=3D"color:#000"> std</spa=
n><span style=3D"color:#660">::</span><span style=3D"color:#008">end</span>=
<span style=3D"color:#660">(</span><span style=3D"color:#000"> v </span><sp=
an style=3D"color:#660">),</span><span style=3D"color:#000"> value </span><=
span style=3D"color:#660">)</span><span style=3D"color:#000"> </span><span =
style=3D"color:#660">)</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 <=
/span><span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660">::</span><spa=
n style=3D"color:#000">cout </span><span style=3D"color:#660">&lt;&lt;</spa=
n><span style=3D"color:#000"> </span><span style=3D"color:#080">&quot;A val=
ue less than or equal to &quot;</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> value <=
/span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000">=
 </span><span style=3D"color:#080">&quot; is encountered at position &quot;=
</span><span style=3D"color:#000"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;</spa=
n><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</span=
><span style=3D"color:#000">distance</span><span style=3D"color:#660">(</sp=
an><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</spa=
n><span style=3D"color:#008">begin</span><span style=3D"color:#660">(</span=
><span style=3D"color:#000"> v </span><span style=3D"color:#660">),</span><=
span style=3D"color:#000"> find_less_equal</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">begin</span><span style=3D"color:#660">(=
</span><span style=3D"color:#000"> v </span><span style=3D"color:#660">),</=
span><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</s=
pan><span style=3D"color:#008">end</span><span style=3D"color:#660">(</span=
><span style=3D"color:#000"> v </span><span style=3D"color:#660">),</span><=
span style=3D"color:#000"> value </span><span style=3D"color:#660">)</span>=
<span style=3D"color:#000"> </span><span style=3D"color:#660">)</span><span=
 style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;</span><span style=
=3D"color:#000"> </span><span style=3D"color:#080">&#39;\n&#39;</span><span=
 style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =
</span><span style=3D"color:#660">}</span><span style=3D"color:#000"><br>=
=C2=A0 =C2=A0 </span><span style=3D"color:#008">else</span><span style=3D"c=
olor:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</span><spa=
n style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span styl=
e=3D"color:#660">::</span><span style=3D"color:#000">cout </span><span styl=
e=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#080">&quot;A value less than or equal to &quot;</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#660">&lt;&lt;</span><span=
 style=3D"color:#000"> value </span><span style=3D"color:#660">&lt;&lt;</sp=
an><span style=3D"color:#000"> </span><span style=3D"color:#080">&quot; has=
 not been found.\n&quot;</span><span style=3D"color:#660">;</span><span sty=
le=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">}</sp=
an><span style=3D"color:#000"><br></span><span style=3D"color:#660">}</span=
></div></code></div><div><br>Its output might look like</div><div><br></div=
><div><pre style=3D"overflow:auto;font-family:&quot;Courier New&quot;,monos=
pace;line-height:1.42857;color:rgb(255,255,255);word-break:break-all;word-w=
rap:break-word;background-color:rgb(0,0,0);border-radius:4px;white-space:pr=
e-wrap">6 9 0 2 8 1 2 8 3 4=20
1 is encountered at position 5
A value not equal to 1 is encountered at position 0
A value greater than 1 is encountered at position 0
A value less than 1 is encountered at position 2
A value greater than or equal to 1 is encountered at position 0
A value less than or equal to 1 is encountered at position 2</pre></div><di=
v><br></div><br>=D1=81=D1=83=D0=B1=D0=B1=D0=BE=D1=82=D0=B0, 15 =D1=81=D0=B5=
=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 12:26:40 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 M=
oscow =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;padd=
ing-left:1ex"><div dir=3D"ltr">There are already standard function object t=
ypes in the C++ Standard<div><br></div><div><span style=3D"font-family:LMMo=
no9-Regular;font-size:8pt;color:rgb(0,0,0)"><div style=3D"background-color:=
rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;border-wi=
dth:1px;word-wrap:break-word"><code><div><span style=3D"color:#008">templat=
e</span><span style=3D"color:#660">&lt;</span><span style=3D"color:#008">cl=
ass</span><span style=3D"color:#000"> T </span><span style=3D"color:#660">=
=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#008">voi=
d</span><span style=3D"color:#660">&gt;</span><span style=3D"color:#000"> <=
/span><span style=3D"color:#008">struct</span><span style=3D"color:#000"> e=
qual_to</span><span style=3D"color:#660">;</span><span style=3D"color:#000"=
><br></span><span style=3D"color:#008">template</span><span style=3D"color:=
#660">&lt;</span><span style=3D"color:#008">class</span><span style=3D"colo=
r:#000"> T </span><span style=3D"color:#660">=3D</span><span style=3D"color=
:#000"> </span><span style=3D"color:#008">void</span><span style=3D"color:#=
660">&gt;</span><span style=3D"color:#000"> </span><span style=3D"color:#00=
8">struct</span><span style=3D"color:#000"> not_equal_to</span><span style=
=3D"color:#660">;</span><span style=3D"color:#000"><br></span><span style=
=3D"color:#008">template</span><span style=3D"color:#660">&lt;</span><span =
style=3D"color:#008">class</span><span style=3D"color:#000"> T </span><span=
 style=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#008">void</span><span style=3D"color:#660">&gt;</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#008">struct</span><span s=
tyle=3D"color:#000"> greater</span><span style=3D"color:#660">;</span><span=
 style=3D"color:#000"><br></span><span style=3D"color:#008">template</span>=
<span style=3D"color:#660">&lt;</span><span style=3D"color:#008">class</spa=
n><span style=3D"color:#000"> T </span><span style=3D"color:#660">=3D</span=
><span style=3D"color:#000"> </span><span style=3D"color:#008">void</span><=
span style=3D"color:#660">&gt;</span><span style=3D"color:#000"> </span><sp=
an style=3D"color:#008">struct</span><span style=3D"color:#000"> less</span=
><span style=3D"color:#660">;</span><span style=3D"color:#000"><br></span><=
span style=3D"color:#008">template</span><span style=3D"color:#660">&lt;</s=
pan><span style=3D"color:#008">class</span><span style=3D"color:#000"> T </=
span><span style=3D"color:#660">=3D</span><span style=3D"color:#000"> </spa=
n><span style=3D"color:#008">void&lt;/spa</span></div></code></div></span><=
/div></div></blockquote></div></div></blockquote></div>
</blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; 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/15dd16e8-a336-4f73-91b0-edbf626d7ad3%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/15dd16e8-a336-4f73-91b0-edbf626d7ad3=
%40isocpp.org</a>.<br />

------=_Part_2740_555419404.1537363293122--

------=_Part_2739_1684901315.1537363293118--

.


Author: Nicolas Lesser <blitzrakete@gmail.com>
Date: Wed, 19 Sep 2018 15:36:08 +0200
Raw View
--000000000000df3d640576397d2f
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Looks like there is only a function for `find_equal_to`. There is also
std::lower_bound and std::upper_bound already for some of your suggestions.

  std::vector<int> Vector =3D {10, 2, 5, 3, 9, 4};
  auto It =3D ranges::v3::find(Vector, 2); // *It =3D=3D 2


On Wed, Sep 19, 2018 at 3:21 PM 'Vlad from Moscow' via ISO C++ Standard -
Future Proposals <std-proposals@isocpp.org> wrote:

> I haven't yet investigated with the Ranges proposal. Could you show an
> equivalent code?
>
> =D1=81=D1=80=D0=B5=D0=B4=D0=B0, 19 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=
=D1=80=D1=8F 2018 =D0=B3., 15:39: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 Nicolas Lesser
> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>
>> Doesn't the Ranges TS basically render your proposal obsolete? It's even
>> more composable.
>>
>> On Wed, Sep 19, 2018, 2:32 PM 'Vlad from Moscow' via ISO C++ Standard -
>> Future Proposals <std-pr...@isocpp.org> wrote:
>>
>>> Here is a simple demonstrative program
>>>
>>> #include <iostream>
>>> #include <vector>
>>> #include <functional>
>>> #include <iterator>
>>> #include <algorithm>
>>> #include <ctime>
>>> #include <cstdlib>
>>>
>>>
>>> template <typename InputIterator, typename T>
>>> inline InputIterator find_equal_to( InputIterator first, InputIterator
>>> last, const T &value )
>>> {
>>>     return std::find( first, last, value );
>>> }
>>>
>>>
>>> template <typename InputIterator, typename T>
>>> inline InputIterator find_not_equal_to( InputIterator first,
>>> InputIterator last, const T &value )
>>> {
>>>     using namespace std::placeholders;
>>>     return std::find_if( first, last, std::bind( std::not_equal_to<>(),
>>> _1, value ) );
>>> }
>>>
>>>
>>> template <typename InputIterator, typename T>
>>> inline InputIterator find_greater( InputIterator first, InputIterator
>>> last, const T &value )
>>> {
>>>     using namespace std::placeholders;
>>>     return std::find_if( first, last, std::bind( std::greater<>(), _1,
>>> value ) );
>>> }
>>>
>>>
>>> template <typename InputIterator, typename T>
>>> inline InputIterator find_less( InputIterator first, InputIterator last=
,
>>> const T &value )
>>> {
>>>     using namespace std::placeholders;
>>>     return std::find_if( first, last, std::bind( std::less<>(), _1,
>>> value ) );
>>> }
>>>
>>>
>>> template <typename InputIterator, typename T>
>>> inline InputIterator find_greater_equal( InputIterator first,
>>> InputIterator last, const T &value )
>>> {
>>>     using namespace std::placeholders;
>>>     return std::find_if( first, last, std::bind( std::greater_equal<>()=
,
>>> _1, value ) );
>>> }
>>>
>>>
>>> template <typename InputIterator, typename T>
>>> inline InputIterator find_less_equal( InputIterator first, InputIterato=
r
>>> last, const T &value )
>>> {
>>>     using namespace std::placeholders;
>>>     return std::find_if( first, last, std::bind( std::less_equal<>(), _=
1
>>> , value ) );
>>> }
>>>
>>>
>>> template <typename InputIterator, typename T>
>>> inline bool any_of_equal_to( InputIterator first, InputIterator last,
>>> const T &value )
>>> {
>>>     using namespace std::placeholders;
>>>     return std::any_of( first, last, std::bind( std::equal_to<>(), _1,
>>> value ) );
>>> }
>>>
>>>
>>> template <typename InputIterator, typename T>
>>> inline bool any_not_equal_to( InputIterator first, InputIterator last,
>>> const T &value )
>>> {
>>>     using namespace std::placeholders;
>>>     return std::any_of( first, last, std::bind( std::not_equal_to<>(),
>>> _1, value ) );
>>> }
>>>
>>>
>>> template <typename InputIterator, typename T>
>>> inline bool any_of_greater( InputIterator first, InputIterator last,
>>> const T &value )
>>> {
>>>     using namespace std::placeholders;
>>>     return std::any_of( first, last, std::bind( std::greater<>(), _1,
>>> value ) );
>>> }
>>>
>>>
>>> template <typename InputIterator, typename T>
>>> inline bool any_of_less( InputIterator first, InputIterator last, const
>>> T &value )
>>> {
>>>     using namespace std::placeholders;
>>>     return std::any_of( first, last, std::bind( std::less<>(), _1,
>>> value ) );
>>> }
>>>
>>>
>>> template <typename InputIterator, typename T>
>>> inline bool any_of_greater_equal( InputIterator first, InputIterator
>>> last, const T &value )
>>> {
>>>     using namespace std::placeholders;
>>>     return std::any_of( first, last, std::bind( std::greater_equal<>(),
>>> _1, value ) );
>>> }
>>>
>>>
>>> template <typename InputIterator, typename T>
>>> inline bool any_of_less_equal( InputIterator first, InputIterator last,
>>> const T &value )
>>> {
>>>     using namespace std::placeholders;
>>>     return std::any_of( first, last, std::bind( std::less_equal<>(), _1=
,
>>> value ) );
>>> }
>>>
>>>
>>> int main()
>>> {
>>>     const size_t N =3D 10;
>>>     std::vector<unsigned int> v;
>>>     v.reserve( N );
>>>
>>>     std::srand( ( unsigned int )std::time( nullptr ) );
>>>
>>>     std::generate_n( std::back_inserter( v ), N, [] { return std::rand(=
)
>>> % N; } );
>>>
>>>     for ( const auto &item : v ) std::cout << item << ' ';
>>>     std::cout << '\n';
>>>
>>>     unsigned int value =3D std::rand() % N;
>>>
>>>
>>>     if ( any_of_equal_to( std::begin( v ), std::end( v ), value ) )
>>>     {
>>>         std::cout << value << " is encountered at position "
>>>                   << std::distance( std::begin( v ), find_equal_to( std
>>> ::begin( v ), std::end( v ), value ) )
>>>                   << '\n';
>>>     }
>>>     else
>>>     {
>>>         std::cout << value << " has not been found.\n";
>>>     }
>>>
>>>
>>>     if ( any_of_equal_to( std::begin( v ), std::end( v ), value ) )
>>>     {
>>>         std::cout << "A value not equal to " << value << " is
>>> encountered at position "
>>>                   << std::distance( std::begin( v ), find_not_equal_to(
>>> std::begin( v ), std::end( v ), value ) )
>>>                   << '\n';
>>>     }
>>>     else
>>>     {
>>>         std::cout << "A value not equal to " << value << " has not been
>>> found.\n";
>>>     }
>>>
>>>
>>>     if ( any_of_greater( std::begin( v ), std::end( v ), value ) )
>>>     {
>>>         std::cout << "A value greater than " << value << " is
>>> encountered at position "
>>>                   << std::distance( std::begin( v ), find_greater( std:=
:
>>> begin( v ), std::end( v ), value ) )
>>>                   << '\n';
>>>     }
>>>     else
>>>     {
>>>         std::cout << "A value greater than " << value << " has not been
>>> found.\n";
>>>     }
>>>
>>>
>>>     if ( any_of_less( std::begin( v ), std::end( v ), value ) )
>>>     {
>>>         std::cout << "A value less than " << value << " is encountered
>>> at position "
>>>                   << std::distance( std::begin( v ), find_less( std::
>>> begin( v ), std::end( v ), value ) )
>>>                   << '\n';
>>>     }
>>>     else
>>>     {
>>>         std::cout << "A value less than " << value << " has not been
>>> found.\n";
>>>     }
>>>
>>>     if ( any_of_greater_equal( std::begin( v ), std::end( v ), value ) =
)
>>>     {
>>>         std::cout << "A value greater than or equal to " << value << "
>>> is encountered at position "
>>>                   << std::distance( std::begin( v ), find_greater_equal=
(
>>> std::begin( v ), std::end( v ), value ) )
>>>                   << '\n';
>>>     }
>>>     else
>>>     {
>>>         std::cout << "A value greater than or equal to " << value << "
>>> has not been found.\n";
>>>     }
>>>
>>>
>>>     if ( any_of_less_equal( std::begin( v ), std::end( v ), value ) )
>>>     {
>>>         std::cout << "A value less than or equal to " << value << " is
>>> encountered at position "
>>>                   << std::distance( std::begin( v ), find_less_equal(
>>> std::begin( v ), std::end( v ), value ) )
>>>                   << '\n';
>>>     }
>>>     else
>>>     {
>>>         std::cout << "A value less than or equal to " << value << " has
>>> not been found.\n";
>>>     }
>>> }
>>>
>>> Its output might look like
>>>
>>> 6 9 0 2 8 1 2 8 3 4
>>> 1 is encountered at position 5
>>> A value not equal to 1 is encountered at position 0
>>> A value greater than 1 is encountered at position 0
>>> A value less than 1 is encountered at position 2
>>> A value greater than or equal to 1 is encountered at position 0
>>> A value less than or equal to 1 is encountered at position 2
>>>
>>>
>>>
>>> =D1=81=D1=83=D0=B1=D0=B1=D0=BE=D1=82=D0=B0, 15 =D1=81=D0=B5=D0=BD=D1=82=
=D1=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 12:26:40 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:
>>>>
>>>> There are already standard function object types in the C++ Standard
>>>>
>>>> template<class T =3D void> struct equal_to;
>>>> template<class T =3D void> struct not_equal_to;
>>>> template<class T =3D void> struct greater;
>>>> template<class T =3D void> struct less;
>>>> template<class T =3D void</spa
>>>>
>>> --
> 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/15dd16e8-a33=
6-4f73-91b0-edbf626d7ad3%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/15dd16e8-a3=
36-4f73-91b0-edbf626d7ad3%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/CALmDwq1z-AvQMSO60d86RQOS3gVhhBHm4R2Sao5Rq57K%2B=
sZe-w%40mail.gmail.com.

--000000000000df3d640576397d2f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">Looks like there is only a function for `=
find_equal_to`. There is also std::lower_bound and std::upper_bound already=
 for some of your suggestions.<div><br></div><div><div>=C2=A0 std::vector&l=
t;int&gt; Vector =3D {10, 2, 5, 3, 9, 4};</div><div>=C2=A0 auto It =3D rang=
es::v3::find(Vector, 2); // *It =3D=3D 2</div></div><div><br></div></div></=
div><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Wed, Sep 19, 2018 at=
 3:21 PM &#39;Vlad from Moscow&#39; via ISO C++ Standard - Future Proposals=
 &lt;<a href=3D"mailto:std-proposals@isocpp.org">std-proposals@isocpp.org</=
a>&gt; 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">I ha=
ven&#39;t yet investigated with the Ranges proposal. Could you show an equi=
valent code?<br><br>=D1=81=D1=80=D0=B5=D0=B4=D0=B0, 19 =D1=81=D0=B5=D0=BD=
=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 15:39: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 Nicolas Lesser =
=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-le=
ft:1ex"><div dir=3D"auto">Doesn&#39;t the Ranges TS basically render your p=
roposal obsolete? It&#39;s even more composable.</div><br><div class=3D"gma=
il_quote"><div dir=3D"ltr">On Wed, Sep 19, 2018, 2:32 PM &#39;Vlad from Mos=
cow&#39; via ISO C++ Standard - Future Proposals &lt;<a rel=3D"nofollow">st=
d-pr...@isocpp.org</a>&gt; 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">Here is a simple demonstrative program<div><br></div><div><=
div style=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,187=
);border-style:solid;border-width:1px;word-wrap:break-word"><code><div><spa=
n style=3D"color:#800">#include</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#080">&lt;iostream&gt;</span><span style=3D"color:#000">=
<br></span><span style=3D"color:#800">#include</span><span style=3D"color:#=
000"> </span><span style=3D"color:#080">&lt;vector&gt;</span><span style=3D=
"color:#000"><br></span><span style=3D"color:#800">#include</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#080">&lt;functional&gt;</sp=
an><span style=3D"color:#000"><br></span><span style=3D"color:#800">#includ=
e</span><span style=3D"color:#000"> </span><span style=3D"color:#080">&lt;i=
terator&gt;</span><span style=3D"color:#000"><br></span><span style=3D"colo=
r:#800">#include</span><span style=3D"color:#000"> </span><span style=3D"co=
lor:#080">&lt;algorithm&gt;</span><span style=3D"color:#000"><br></span><sp=
an style=3D"color:#800">#include</span><span style=3D"color:#000"> </span><=
span style=3D"color:#080">&lt;ctime&gt;</span><span style=3D"color:#000"><b=
r></span><span style=3D"color:#800">#include</span><span style=3D"color:#00=
0"> </span><span style=3D"color:#080">&lt;cstdlib&gt;</span><span style=3D"=
color:#000"><br><br><br></span><span style=3D"color:#008">template</span><s=
pan style=3D"color:#000"> </span><span style=3D"color:#660">&lt;</span><spa=
n style=3D"color:#008">typename</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#606">InputIterator</span><span style=3D"color:#660">,</=
span><span style=3D"color:#000"> </span><span style=3D"color:#008">typename=
</span><span style=3D"color:#000"> T</span><span style=3D"color:#660">&gt;<=
/span><span style=3D"color:#000"><br></span><span style=3D"color:#008">inli=
ne</span><span style=3D"color:#000"> </span><span style=3D"color:#606">Inpu=
tIterator</span><span style=3D"color:#000"> find_equal_to</span><span style=
=3D"color:#660">(</span><span style=3D"color:#000"> </span><span style=3D"c=
olor:#606">InputIterator</span><span style=3D"color:#000"> first</span><spa=
n style=3D"color:#660">,</span><span style=3D"color:#000"> </span><span sty=
le=3D"color:#606">InputIterator</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#008">last</span><span style=3D"color:#660">,</span><spa=
n style=3D"color:#000"> </span><span style=3D"color:#008">const</span><span=
 style=3D"color:#000"> T </span><span style=3D"color:#660">&amp;</span><spa=
n style=3D"color:#000">value </span><span style=3D"color:#660">)</span><spa=
n style=3D"color:#000"><br></span><span style=3D"color:#660">{</span><span =
style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">re=
turn</span><span style=3D"color:#000"> std</span><span style=3D"color:#660"=
>::</span><span style=3D"color:#000">find</span><span style=3D"color:#660">=
(</span><span style=3D"color:#000"> first</span><span style=3D"color:#660">=
,</span><span style=3D"color:#000"> </span><span style=3D"color:#008">last<=
/span><span style=3D"color:#660">,</span><span style=3D"color:#000"> value =
</span><span style=3D"color:#660">);</span><span style=3D"color:#000"> <br>=
</span><span style=3D"color:#660">}</span><span style=3D"color:#000"><br><b=
r><br></span><span style=3D"color:#008">template</span><span style=3D"color=
:#000"> </span><span style=3D"color:#660">&lt;</span><span style=3D"color:#=
008">typename</span><span style=3D"color:#000"> </span><span style=3D"color=
:#606">InputIterator</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000"> </span><span style=3D"color:#008">typename</span><span sty=
le=3D"color:#000"> T</span><span style=3D"color:#660">&gt;</span><span styl=
e=3D"color:#000"><br></span><span style=3D"color:#008">inline</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</span>=
<span style=3D"color:#000"> find_not_equal_to</span><span style=3D"color:#6=
60">(</span><span style=3D"color:#000"> </span><span style=3D"color:#606">I=
nputIterator</span><span style=3D"color:#000"> first</span><span style=3D"c=
olor:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color:=
#606">InputIterator</span><span style=3D"color:#000"> </span><span style=3D=
"color:#008">last</span><span style=3D"color:#660">,</span><span style=3D"c=
olor:#000"> </span><span style=3D"color:#008">const</span><span style=3D"co=
lor:#000"> T </span><span style=3D"color:#660">&amp;</span><span style=3D"c=
olor:#000">value </span><span style=3D"color:#660">)</span><span style=3D"c=
olor:#000"><br></span><span style=3D"color:#660">{</span><span style=3D"col=
or:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">using</span><s=
pan style=3D"color:#000"> </span><span style=3D"color:#008">namespace</span=
><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</span>=
<span style=3D"color:#000">placeholders</span><span style=3D"color:#660">;<=
/span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"co=
lor:#008">return</span><span style=3D"color:#000"> std</span><span style=3D=
"color:#660">::</span><span style=3D"color:#000">find_if</span><span style=
=3D"color:#660">(</span><span style=3D"color:#000"> first</span><span style=
=3D"color:#660">,</span><span style=3D"color:#000"> </span><span style=3D"c=
olor:#008">last</span><span style=3D"color:#660">,</span><span style=3D"col=
or:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"colo=
r:#000">bind</span><span style=3D"color:#660">(</span><span style=3D"color:=
#000"> std</span><span style=3D"color:#660">::</span><span style=3D"color:#=
000">not_equal_to</span><span style=3D"color:#660">&lt;&gt;(),</span><span =
style=3D"color:#000"> _1</span><span style=3D"color:#660">,</span><span sty=
le=3D"color:#000"> value </span><span style=3D"color:#660">)</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#660">);</span><span style=
=3D"color:#000"> <br></span><span style=3D"color:#660">}</span><span style=
=3D"color:#000"><br><br><br></span><span style=3D"color:#008">template</spa=
n><span style=3D"color:#000"> </span><span style=3D"color:#660">&lt;</span>=
<span style=3D"color:#008">typename</span><span style=3D"color:#000"> </spa=
n><span style=3D"color:#606">InputIterator</span><span style=3D"color:#660"=
>,</span><span style=3D"color:#000"> </span><span style=3D"color:#008">type=
name</span><span style=3D"color:#000"> T</span><span style=3D"color:#660">&=
gt;</span><span style=3D"color:#000"><br></span><span style=3D"color:#008">=
inline</span><span style=3D"color:#000"> </span><span style=3D"color:#606">=
InputIterator</span><span style=3D"color:#000"> find_greater</span><span st=
yle=3D"color:#660">(</span><span style=3D"color:#000"> </span><span style=
=3D"color:#606">InputIterator</span><span style=3D"color:#000"> first</span=
><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span><spa=
n style=3D"color:#606">InputIterator</span><span style=3D"color:#000"> </sp=
an><span style=3D"color:#008">last</span><span style=3D"color:#660">,</span=
><span style=3D"color:#000"> </span><span style=3D"color:#008">const</span>=
<span style=3D"color:#000"> T </span><span style=3D"color:#660">&amp;</span=
><span style=3D"color:#000">value </span><span style=3D"color:#660">)</span=
><span style=3D"color:#000"><br></span><span style=3D"color:#660">{</span><=
span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#00=
8">using</span><span style=3D"color:#000"> </span><span style=3D"color:#008=
">namespace</span><span style=3D"color:#000"> std</span><span style=3D"colo=
r:#660">::</span><span style=3D"color:#000">placeholders</span><span style=
=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span=
><span style=3D"color:#008">return</span><span style=3D"color:#000"> std</s=
pan><span style=3D"color:#660">::</span><span style=3D"color:#000">find_if<=
/span><span style=3D"color:#660">(</span><span style=3D"color:#000"> first<=
/span><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span=
><span style=3D"color:#008">last</span><span style=3D"color:#660">,</span><=
span style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><s=
pan style=3D"color:#000">bind</span><span style=3D"color:#660">(</span><spa=
n style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span=
 style=3D"color:#000">greater</span><span style=3D"color:#660">&lt;&gt;(),<=
/span><span style=3D"color:#000"> _1</span><span style=3D"color:#660">,</sp=
an><span style=3D"color:#000"> value </span><span style=3D"color:#660">)</s=
pan><span style=3D"color:#000"> </span><span style=3D"color:#660">);</span>=
<span style=3D"color:#000"> <br></span><span style=3D"color:#660">}</span><=
span style=3D"color:#000"><br><br><br></span><span style=3D"color:#008">tem=
plate</span><span style=3D"color:#000"> </span><span style=3D"color:#660">&=
lt;</span><span style=3D"color:#008">typename</span><span style=3D"color:#0=
00"> </span><span style=3D"color:#606">InputIterator</span><span style=3D"c=
olor:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color:=
#008">typename</span><span style=3D"color:#000"> T</span><span style=3D"col=
or:#660">&gt;</span><span style=3D"color:#000"><br></span><span style=3D"co=
lor:#008">inline</span><span style=3D"color:#000"> </span><span style=3D"co=
lor:#606">InputIterator</span><span style=3D"color:#000"> find_less</span><=
span style=3D"color:#660">(</span><span style=3D"color:#000"> </span><span =
style=3D"color:#606">InputIterator</span><span style=3D"color:#000"> first<=
/span><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span=
><span style=3D"color:#606">InputIterator</span><span style=3D"color:#000">=
 </span><span style=3D"color:#008">last</span><span style=3D"color:#660">,<=
/span><span style=3D"color:#000"> </span><span style=3D"color:#008">const</=
span><span style=3D"color:#000"> T </span><span style=3D"color:#660">&amp;<=
/span><span style=3D"color:#000">value </span><span style=3D"color:#660">)<=
/span><span style=3D"color:#000"><br></span><span style=3D"color:#660">{</s=
pan><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"colo=
r:#008">using</span><span style=3D"color:#000"> </span><span style=3D"color=
:#008">namespace</span><span style=3D"color:#000"> std</span><span style=3D=
"color:#660">::</span><span style=3D"color:#000">placeholders</span><span s=
tyle=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </=
span><span style=3D"color:#008">return</span><span style=3D"color:#000"> st=
d</span><span style=3D"color:#660">::</span><span style=3D"color:#000">find=
_if</span><span style=3D"color:#660">(</span><span style=3D"color:#000"> fi=
rst</span><span style=3D"color:#660">,</span><span style=3D"color:#000"> </=
span><span style=3D"color:#008">last</span><span style=3D"color:#660">,</sp=
an><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</spa=
n><span style=3D"color:#000">bind</span><span style=3D"color:#660">(</span>=
<span style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><=
span style=3D"color:#000">less</span><span style=3D"color:#660">&lt;&gt;(),=
</span><span style=3D"color:#000"> _1</span><span style=3D"color:#660">,</s=
pan><span style=3D"color:#000"> value </span><span style=3D"color:#660">)</=
span><span style=3D"color:#000"> </span><span style=3D"color:#660">);</span=
><span style=3D"color:#000"> <br></span><span style=3D"color:#660">}</span>=
<span style=3D"color:#000"><br><br><br></span><span style=3D"color:#008">te=
mplate</span><span style=3D"color:#000"> </span><span style=3D"color:#660">=
&lt;</span><span style=3D"color:#008">typename</span><span style=3D"color:#=
000"> </span><span style=3D"color:#606">InputIterator</span><span style=3D"=
color:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color=
:#008">typename</span><span style=3D"color:#000"> T</span><span style=3D"co=
lor:#660">&gt;</span><span style=3D"color:#000"><br></span><span style=3D"c=
olor:#008">inline</span><span style=3D"color:#000"> </span><span style=3D"c=
olor:#606">InputIterator</span><span style=3D"color:#000"> find_greater_equ=
al</span><span style=3D"color:#660">(</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#606">InputIterator</span><span style=3D"color:#00=
0"> first</span><span style=3D"color:#660">,</span><span style=3D"color:#00=
0"> </span><span style=3D"color:#606">InputIterator</span><span style=3D"co=
lor:#000"> </span><span style=3D"color:#008">last</span><span style=3D"colo=
r:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color:#00=
8">const</span><span style=3D"color:#000"> T </span><span style=3D"color:#6=
60">&amp;</span><span style=3D"color:#000">value </span><span style=3D"colo=
r:#660">)</span><span style=3D"color:#000"><br></span><span style=3D"color:=
#660">{</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span sty=
le=3D"color:#008">using</span><span style=3D"color:#000"> </span><span styl=
e=3D"color:#008">namespace</span><span style=3D"color:#000"> std</span><spa=
n style=3D"color:#660">::</span><span style=3D"color:#000">placeholders</sp=
an><span style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0=
 =C2=A0 </span><span style=3D"color:#008">return</span><span style=3D"color=
:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"color:=
#000">find_if</span><span style=3D"color:#660">(</span><span style=3D"color=
:#000"> first</span><span style=3D"color:#660">,</span><span style=3D"color=
:#000"> </span><span style=3D"color:#008">last</span><span style=3D"color:#=
660">,</span><span style=3D"color:#000"> std</span><span style=3D"color:#66=
0">::</span><span style=3D"color:#000">bind</span><span style=3D"color:#660=
">(</span><span style=3D"color:#000"> std</span><span style=3D"color:#660">=
::</span><span style=3D"color:#000">greater_equal</span><span style=3D"colo=
r:#660">&lt;&gt;(),</span><span style=3D"color:#000"> _1</span><span style=
=3D"color:#660">,</span><span style=3D"color:#000"> value </span><span styl=
e=3D"color:#660">)</span><span style=3D"color:#000"> </span><span style=3D"=
color:#660">);</span><span style=3D"color:#000"> <br></span><span style=3D"=
color:#660">}</span><span style=3D"color:#000"><br><br><br></span><span sty=
le=3D"color:#008">template</span><span style=3D"color:#000"> </span><span s=
tyle=3D"color:#660">&lt;</span><span style=3D"color:#008">typename</span><s=
pan style=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</=
span><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span>=
<span style=3D"color:#008">typename</span><span style=3D"color:#000"> T</sp=
an><span style=3D"color:#660">&gt;</span><span style=3D"color:#000"><br></s=
pan><span style=3D"color:#008">inline</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#606">InputIterator</span><span style=3D"color:#00=
0"> find_less_equal</span><span style=3D"color:#660">(</span><span style=3D=
"color:#000"> </span><span style=3D"color:#606">InputIterator</span><span s=
tyle=3D"color:#000"> first</span><span style=3D"color:#660">,</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</span>=
<span style=3D"color:#000"> </span><span style=3D"color:#008">last</span><s=
pan style=3D"color:#660">,</span><span style=3D"color:#000"> </span><span s=
tyle=3D"color:#008">const</span><span style=3D"color:#000"> T </span><span =
style=3D"color:#660">&amp;</span><span style=3D"color:#000">value </span><s=
pan style=3D"color:#660">)</span><span style=3D"color:#000"><br></span><spa=
n style=3D"color:#660">{</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0=
 </span><span style=3D"color:#008">using</span><span style=3D"color:#000"> =
</span><span style=3D"color:#008">namespace</span><span style=3D"color:#000=
"> std</span><span style=3D"color:#660">::</span><span style=3D"color:#000"=
>placeholders</span><span style=3D"color:#660">;</span><span style=3D"color=
:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">return</span><sp=
an style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><spa=
n style=3D"color:#000">find_if</span><span style=3D"color:#660">(</span><sp=
an style=3D"color:#000"> first</span><span style=3D"color:#660">,</span><sp=
an style=3D"color:#000"> </span><span style=3D"color:#008">last</span><span=
 style=3D"color:#660">,</span><span style=3D"color:#000"> std</span><span s=
tyle=3D"color:#660">::</span><span style=3D"color:#000">bind</span><span st=
yle=3D"color:#660">(</span><span style=3D"color:#000"> std</span><span styl=
e=3D"color:#660">::</span><span style=3D"color:#000">less_equal</span><span=
 style=3D"color:#660">&lt;&gt;(),</span><span style=3D"color:#000"> _1</spa=
n><span style=3D"color:#660">,</span><span style=3D"color:#000"> value </sp=
an><span style=3D"color:#660">)</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#660">);</span><span style=3D"color:#000"> <br></span><s=
pan style=3D"color:#660">}</span><span style=3D"color:#000"><br><br><br></s=
pan><span style=3D"color:#008">template</span><span style=3D"color:#000"> <=
/span><span style=3D"color:#660">&lt;</span><span style=3D"color:#008">type=
name</span><span style=3D"color:#000"> </span><span style=3D"color:#606">In=
putIterator</span><span style=3D"color:#660">,</span><span style=3D"color:#=
000"> </span><span style=3D"color:#008">typename</span><span style=3D"color=
:#000"> T</span><span style=3D"color:#660">&gt;</span><span style=3D"color:=
#000"><br></span><span style=3D"color:#008">inline</span><span style=3D"col=
or:#000"> </span><span style=3D"color:#008">bool</span><span style=3D"color=
:#000"> any_of_equal_to</span><span style=3D"color:#660">(</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</span><sp=
an style=3D"color:#000"> first</span><span style=3D"color:#660">,</span><sp=
an style=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</s=
pan><span style=3D"color:#000"> </span><span style=3D"color:#008">last</spa=
n><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span><sp=
an style=3D"color:#008">const</span><span style=3D"color:#000"> T </span><s=
pan style=3D"color:#660">&amp;</span><span style=3D"color:#000">value </spa=
n><span style=3D"color:#660">)</span><span style=3D"color:#000"><br></span>=
<span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=C2=A0 =
=C2=A0 </span><span style=3D"color:#008">using</span><span style=3D"color:#=
000"> </span><span style=3D"color:#008">namespace</span><span style=3D"colo=
r:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"color=
:#000">placeholders</span><span style=3D"color:#660">;</span><span style=3D=
"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">return</sp=
an><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</spa=
n><span style=3D"color:#000">any_of</span><span style=3D"color:#660">(</spa=
n><span style=3D"color:#000"> first</span><span style=3D"color:#660">,</spa=
n><span style=3D"color:#000"> </span><span style=3D"color:#008">last</span>=
<span style=3D"color:#660">,</span><span style=3D"color:#000"> std</span><s=
pan style=3D"color:#660">::</span><span style=3D"color:#000">bind</span><sp=
an style=3D"color:#660">(</span><span style=3D"color:#000"> std</span><span=
 style=3D"color:#660">::</span><span style=3D"color:#000">equal_to</span><s=
pan style=3D"color:#660">&lt;&gt;(),</span><span style=3D"color:#000"> _1</=
span><span style=3D"color:#660">,</span><span style=3D"color:#000"> value <=
/span><span style=3D"color:#660">)</span><span style=3D"color:#000"> </span=
><span style=3D"color:#660">);</span><span style=3D"color:#000"> <br></span=
><span style=3D"color:#660">}</span><span style=3D"color:#000"><br><br><br>=
</span><span style=3D"color:#008">template</span><span style=3D"color:#000"=
> </span><span style=3D"color:#660">&lt;</span><span style=3D"color:#008">t=
ypename</span><span style=3D"color:#000"> </span><span style=3D"color:#606"=
>InputIterator</span><span style=3D"color:#660">,</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:#008">typename</span><span style=3D"co=
lor:#000"> T</span><span style=3D"color:#660">&gt;</span><span style=3D"col=
or:#000"><br></span><span style=3D"color:#008">inline</span><span style=3D"=
color:#000"> </span><span style=3D"color:#008">bool</span><span style=3D"co=
lor:#000"> any_not_equal_to</span><span style=3D"color:#660">(</span><span =
style=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</span=
><span style=3D"color:#000"> first</span><span style=3D"color:#660">,</span=
><span style=3D"color:#000"> </span><span style=3D"color:#606">InputIterato=
r</span><span style=3D"color:#000"> </span><span style=3D"color:#008">last<=
/span><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span=
><span style=3D"color:#008">const</span><span style=3D"color:#000"> T </spa=
n><span style=3D"color:#660">&amp;</span><span style=3D"color:#000">value <=
/span><span style=3D"color:#660">)</span><span style=3D"color:#000"><br></s=
pan><span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#008">using</span><span style=3D"col=
or:#000"> </span><span style=3D"color:#008">namespace</span><span style=3D"=
color:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"c=
olor:#000">placeholders</span><span style=3D"color:#660">;</span><span styl=
e=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">return=
</span><span style=3D"color:#000"> std</span><span style=3D"color:#660">::<=
/span><span style=3D"color:#000">any_of</span><span style=3D"color:#660">(<=
/span><span style=3D"color:#000"> first</span><span style=3D"color:#660">,<=
/span><span style=3D"color:#000"> </span><span style=3D"color:#008">last</s=
pan><span style=3D"color:#660">,</span><span style=3D"color:#000"> std</spa=
n><span style=3D"color:#660">::</span><span style=3D"color:#000">bind</span=
><span style=3D"color:#660">(</span><span style=3D"color:#000"> std</span><=
span style=3D"color:#660">::</span><span style=3D"color:#000">not_equal_to<=
/span><span style=3D"color:#660">&lt;&gt;(),</span><span style=3D"color:#00=
0"> _1</span><span style=3D"color:#660">,</span><span style=3D"color:#000">=
 value </span><span style=3D"color:#660">)</span><span style=3D"color:#000"=
> </span><span style=3D"color:#660">);</span><span style=3D"color:#000"> <b=
r></span><span style=3D"color:#660">}</span><span style=3D"color:#000"><br>=
<br><br></span><span style=3D"color:#008">template</span><span style=3D"col=
or:#000"> </span><span style=3D"color:#660">&lt;</span><span style=3D"color=
:#008">typename</span><span style=3D"color:#000"> </span><span style=3D"col=
or:#606">InputIterator</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000"> </span><span style=3D"color:#008">typename</span><span sty=
le=3D"color:#000"> T</span><span style=3D"color:#660">&gt;</span><span styl=
e=3D"color:#000"><br></span><span style=3D"color:#008">inline</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#008">bool</span><span sty=
le=3D"color:#000"> any_of_greater</span><span style=3D"color:#660">(</span>=
<span style=3D"color:#000"> </span><span style=3D"color:#606">InputIterator=
</span><span style=3D"color:#000"> first</span><span style=3D"color:#660">,=
</span><span style=3D"color:#000"> </span><span style=3D"color:#606">InputI=
terator</span><span style=3D"color:#000"> </span><span style=3D"color:#008"=
>last</span><span style=3D"color:#660">,</span><span style=3D"color:#000"> =
</span><span style=3D"color:#008">const</span><span style=3D"color:#000"> T=
 </span><span style=3D"color:#660">&amp;</span><span style=3D"color:#000">v=
alue </span><span style=3D"color:#660">)</span><span style=3D"color:#000"><=
br></span><span style=3D"color:#660">{</span><span style=3D"color:#000"><br=
>=C2=A0 =C2=A0 </span><span style=3D"color:#008">using</span><span style=3D=
"color:#000"> </span><span style=3D"color:#008">namespace</span><span style=
=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span style=
=3D"color:#000">placeholders</span><span style=3D"color:#660">;</span><span=
 style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">r=
eturn</span><span style=3D"color:#000"> std</span><span style=3D"color:#660=
">::</span><span style=3D"color:#000">any_of</span><span style=3D"color:#66=
0">(</span><span style=3D"color:#000"> first</span><span style=3D"color:#66=
0">,</span><span style=3D"color:#000"> </span><span style=3D"color:#008">la=
st</span><span style=3D"color:#660">,</span><span style=3D"color:#000"> std=
</span><span style=3D"color:#660">::</span><span style=3D"color:#000">bind<=
/span><span style=3D"color:#660">(</span><span style=3D"color:#000"> std</s=
pan><span style=3D"color:#660">::</span><span style=3D"color:#000">greater<=
/span><span style=3D"color:#660">&lt;&gt;(),</span><span style=3D"color:#00=
0"> _1</span><span style=3D"color:#660">,</span><span style=3D"color:#000">=
 value </span><span style=3D"color:#660">)</span><span style=3D"color:#000"=
> </span><span style=3D"color:#660">);</span><span style=3D"color:#000"> <b=
r></span><span style=3D"color:#660">}</span><span style=3D"color:#000"><br>=
<br><br></span><span style=3D"color:#008">template</span><span style=3D"col=
or:#000"> </span><span style=3D"color:#660">&lt;</span><span style=3D"color=
:#008">typename</span><span style=3D"color:#000"> </span><span style=3D"col=
or:#606">InputIterator</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000"> </span><span style=3D"color:#008">typename</span><span sty=
le=3D"color:#000"> T</span><span style=3D"color:#660">&gt;</span><span styl=
e=3D"color:#000"><br></span><span style=3D"color:#008">inline</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#008">bool</span><span sty=
le=3D"color:#000"> any_of_less</span><span style=3D"color:#660">(</span><sp=
an style=3D"color:#000"> </span><span style=3D"color:#606">InputIterator</s=
pan><span style=3D"color:#000"> first</span><span style=3D"color:#660">,</s=
pan><span style=3D"color:#000"> </span><span style=3D"color:#606">InputIter=
ator</span><span style=3D"color:#000"> </span><span style=3D"color:#008">la=
st</span><span style=3D"color:#660">,</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#008">const</span><span style=3D"color:#000"> T </=
span><span style=3D"color:#660">&amp;</span><span style=3D"color:#000">valu=
e </span><span style=3D"color:#660">)</span><span style=3D"color:#000"><br>=
</span><span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=
=C2=A0 =C2=A0 </span><span style=3D"color:#008">using</span><span style=3D"=
color:#000"> </span><span style=3D"color:#008">namespace</span><span style=
=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span style=
=3D"color:#000">placeholders</span><span style=3D"color:#660">;</span><span=
 style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">r=
eturn</span><span style=3D"color:#000"> std</span><span style=3D"color:#660=
">::</span><span style=3D"color:#000">any_of</span><span style=3D"color:#66=
0">(</span><span style=3D"color:#000"> first</span><span style=3D"color:#66=
0">,</span><span style=3D"color:#000"> </span><span style=3D"color:#008">la=
st</span><span style=3D"color:#660">,</span><span style=3D"color:#000"> std=
</span><span style=3D"color:#660">::</span><span style=3D"color:#000">bind<=
/span><span style=3D"color:#660">(</span><span style=3D"color:#000"> std</s=
pan><span style=3D"color:#660">::</span><span style=3D"color:#000">less</sp=
an><span style=3D"color:#660">&lt;&gt;(),</span><span style=3D"color:#000">=
 _1</span><span style=3D"color:#660">,</span><span style=3D"color:#000"> va=
lue </span><span style=3D"color:#660">)</span><span style=3D"color:#000"> <=
/span><span style=3D"color:#660">);</span><span style=3D"color:#000"> <br><=
/span><span style=3D"color:#660">}</span><span style=3D"color:#000"><br><br=
><br></span><span style=3D"color:#008">template</span><span style=3D"color:=
#000"> </span><span style=3D"color:#660">&lt;</span><span style=3D"color:#0=
08">typename</span><span style=3D"color:#000"> </span><span style=3D"color:=
#606">InputIterator</span><span style=3D"color:#660">,</span><span style=3D=
"color:#000"> </span><span style=3D"color:#008">typename</span><span style=
=3D"color:#000"> T</span><span style=3D"color:#660">&gt;</span><span style=
=3D"color:#000"><br></span><span style=3D"color:#008">inline</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#008">bool</span><span styl=
e=3D"color:#000"> any_of_greater_equal</span><span style=3D"color:#660">(</=
span><span style=3D"color:#000"> </span><span style=3D"color:#606">InputIte=
rator</span><span style=3D"color:#000"> first</span><span style=3D"color:#6=
60">,</span><span style=3D"color:#000"> </span><span style=3D"color:#606">I=
nputIterator</span><span style=3D"color:#000"> </span><span style=3D"color:=
#008">last</span><span style=3D"color:#660">,</span><span style=3D"color:#0=
00"> </span><span style=3D"color:#008">const</span><span style=3D"color:#00=
0"> T </span><span style=3D"color:#660">&amp;</span><span style=3D"color:#0=
00">value </span><span style=3D"color:#660">)</span><span style=3D"color:#0=
00"><br></span><span style=3D"color:#660">{</span><span style=3D"color:#000=
"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">using</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#008">namespace</span><span =
style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span s=
tyle=3D"color:#000">placeholders</span><span style=3D"color:#660">;</span><=
span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#00=
8">return</span><span style=3D"color:#000"> std</span><span style=3D"color:=
#660">::</span><span style=3D"color:#000">any_of</span><span style=3D"color=
:#660">(</span><span style=3D"color:#000"> first</span><span style=3D"color=
:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color:#008=
">last</span><span style=3D"color:#660">,</span><span style=3D"color:#000">=
 std</span><span style=3D"color:#660">::</span><span style=3D"color:#000">b=
ind</span><span style=3D"color:#660">(</span><span style=3D"color:#000"> st=
d</span><span style=3D"color:#660">::</span><span style=3D"color:#000">grea=
ter_equal</span><span style=3D"color:#660">&lt;&gt;(),</span><span style=3D=
"color:#000"> _1</span><span style=3D"color:#660">,</span><span style=3D"co=
lor:#000"> value </span><span style=3D"color:#660">)</span><span style=3D"c=
olor:#000"> </span><span style=3D"color:#660">);</span><span style=3D"color=
:#000"> <br></span><span style=3D"color:#660">}</span><span style=3D"color:=
#000"><br><br><br></span><span style=3D"color:#008">template</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#660">&lt;</span><span styl=
e=3D"color:#008">typename</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#606">InputIterator</span><span style=3D"color:#660">,</span><=
span style=3D"color:#000"> </span><span style=3D"color:#008">typename</span=
><span style=3D"color:#000"> T</span><span style=3D"color:#660">&gt;</span>=
<span style=3D"color:#000"><br></span><span style=3D"color:#008">inline</sp=
an><span style=3D"color:#000"> </span><span style=3D"color:#008">bool</span=
><span style=3D"color:#000"> any_of_less_equal</span><span style=3D"color:#=
660">(</span><span style=3D"color:#000"> </span><span style=3D"color:#606">=
InputIterator</span><span style=3D"color:#000"> first</span><span style=3D"=
color:#660">,</span><span style=3D"color:#000"> </span><span style=3D"color=
:#606">InputIterator</span><span style=3D"color:#000"> </span><span style=
=3D"color:#008">last</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000"> </span><span style=3D"color:#008">const</span><span style=
=3D"color:#000"> T </span><span style=3D"color:#660">&amp;</span><span styl=
e=3D"color:#000">value </span><span style=3D"color:#660">)</span><span styl=
e=3D"color:#000"><br></span><span style=3D"color:#660">{</span><span style=
=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">using</=
span><span style=3D"color:#000"> </span><span style=3D"color:#008">namespac=
e</span><span style=3D"color:#000"> std</span><span style=3D"color:#660">::=
</span><span style=3D"color:#000">placeholders</span><span style=3D"color:#=
660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span styl=
e=3D"color:#008">return</span><span style=3D"color:#000"> std</span><span s=
tyle=3D"color:#660">::</span><span style=3D"color:#000">any_of</span><span =
style=3D"color:#660">(</span><span style=3D"color:#000"> first</span><span =
style=3D"color:#660">,</span><span style=3D"color:#000"> </span><span style=
=3D"color:#008">last</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span style=
=3D"color:#000">bind</span><span style=3D"color:#660">(</span><span style=
=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span style=
=3D"color:#000">less_equal</span><span style=3D"color:#660">&lt;&gt;(),</sp=
an><span style=3D"color:#000"> _1</span><span style=3D"color:#660">,</span>=
<span style=3D"color:#000"> value </span><span style=3D"color:#660">)</span=
><span style=3D"color:#000"> </span><span style=3D"color:#660">);</span><sp=
an style=3D"color:#000"> <br></span><span style=3D"color:#660">}</span><spa=
n style=3D"color:#000"><br><br><br></span><span style=3D"color:#008">int</s=
pan><span style=3D"color:#000"> main</span><span style=3D"color:#660">()</s=
pan><span style=3D"color:#000"><br></span><span style=3D"color:#660">{</spa=
n><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:=
#008">const</span><span style=3D"color:#000"> size_t N </span><span style=
=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span style=3D=
"color:#066">10</span><span style=3D"color:#660">;</span><span style=3D"col=
or:#000"><br>=C2=A0 =C2=A0 std</span><span style=3D"color:#660">::</span><s=
pan style=3D"color:#000">vector</span><span style=3D"color:#660">&lt;</span=
><span style=3D"color:#008">unsigned</span><span style=3D"color:#000"> </sp=
an><span style=3D"color:#008">int</span><span style=3D"color:#660">&gt;</sp=
an><span style=3D"color:#000"> v</span><span style=3D"color:#660">;</span><=
span style=3D"color:#000"><br>=C2=A0 =C2=A0 v</span><span style=3D"color:#6=
60">.</span><span style=3D"color:#000">reserve</span><span style=3D"color:#=
660">(</span><span style=3D"color:#000"> N </span><span style=3D"color:#660=
">);</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 s=
td</span><span style=3D"color:#660">::</span><span style=3D"color:#000">sra=
nd</span><span style=3D"color:#660">(</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#660">(</span><span style=3D"color:#000"> </span><=
span style=3D"color:#008">unsigned</span><span style=3D"color:#000"> </span=
><span style=3D"color:#008">int</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#660">)</span><span style=3D"color:#000">std</span><span=
 style=3D"color:#660">::</span><span style=3D"color:#000">time</span><span =
style=3D"color:#660">(</span><span style=3D"color:#000"> </span><span style=
=3D"color:#008">nullptr</span><span style=3D"color:#000"> </span><span styl=
e=3D"color:#660">)</span><span style=3D"color:#000"> </span><span style=3D"=
color:#660">);</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 <br>=C2=
=A0 =C2=A0 std</span><span style=3D"color:#660">::</span><span style=3D"col=
or:#000">generate_n</span><span style=3D"color:#660">(</span><span style=3D=
"color:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"=
color:#000">back_inserter</span><span style=3D"color:#660">(</span><span st=
yle=3D"color:#000"> v </span><span style=3D"color:#660">),</span><span styl=
e=3D"color:#000"> N</span><span style=3D"color:#660">,</span><span style=3D=
"color:#000"> </span><span style=3D"color:#660">[]</span><span style=3D"col=
or:#000"> </span><span style=3D"color:#660">{</span><span style=3D"color:#0=
00"> </span><span style=3D"color:#008">return</span><span style=3D"color:#0=
00"> std</span><span style=3D"color:#660">::</span><span style=3D"color:#00=
0">rand</span><span style=3D"color:#660">()</span><span style=3D"color:#000=
"> </span><span style=3D"color:#660">%</span><span style=3D"color:#000"> N<=
/span><span style=3D"color:#660">;</span><span style=3D"color:#000"> </span=
><span style=3D"color:#660">}</span><span style=3D"color:#000"> </span><spa=
n style=3D"color:#660">);</span><span style=3D"color:#000"><br>=C2=A0 =C2=
=A0 <br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">for</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#660">(</span><span style=3D=
"color:#000"> </span><span style=3D"color:#008">const</span><span style=3D"=
color:#000"> </span><span style=3D"color:#008">auto</span><span style=3D"co=
lor:#000"> </span><span style=3D"color:#660">&amp;</span><span style=3D"col=
or:#000">item </span><span style=3D"color:#660">:</span><span style=3D"colo=
r:#000"> v </span><span style=3D"color:#660">)</span><span style=3D"color:#=
000"> std</span><span style=3D"color:#660">::</span><span style=3D"color:#0=
00">cout </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"co=
lor:#000"> item </span><span style=3D"color:#660">&lt;&lt;</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#080">&#39; &#39;</span><span=
 style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =
std</span><span style=3D"color:#660">::</span><span style=3D"color:#000">co=
ut </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#0=
00"> </span><span style=3D"color:#080">&#39;\n&#39;</span><span style=3D"co=
lor:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 <br>=C2=A0 =
=C2=A0 </span><span style=3D"color:#008">unsigned</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:#008">int</span><span style=3D"color:#=
000"> value </span><span style=3D"color:#660">=3D</span><span style=3D"colo=
r:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"color=
:#000">rand</span><span style=3D"color:#660">()</span><span style=3D"color:=
#000"> </span><span style=3D"color:#660">%</span><span style=3D"color:#000"=
> N</span><span style=3D"color:#660">;</span><span style=3D"color:#000"><br=
><br><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">if</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#660">(</span><span style=3D=
"color:#000"> any_of_equal_to</span><span style=3D"color:#660">(</span><spa=
n 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"> v </span><span style=3D"color:#660">),</span><span st=
yle=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span sty=
le=3D"color:#008">end</span><span style=3D"color:#660">(</span><span style=
=3D"color:#000"> v </span><span style=3D"color:#660">),</span><span style=
=3D"color:#000"> value </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"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</span><sp=
an style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span sty=
le=3D"color:#660">::</span><span style=3D"color:#000">cout </span><span sty=
le=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> value </span><=
span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span=
><span style=3D"color:#080">&quot; is encountered at position &quot;</span>=
<span style=3D"color:#000"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;</span><span=
 style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span =
style=3D"color:#000">distance</span><span style=3D"color:#660">(</span><spa=
n 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"> v </span><span style=3D"color:#660">),</span><span st=
yle=3D"color:#000"> find_equal_to</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">begin</span><span style=3D"color:#660">(</span><s=
pan style=3D"color:#000"> v </span><span style=3D"color:#660">),</span><spa=
n style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span=
 style=3D"color:#008">end</span><span style=3D"color:#660">(</span><span st=
yle=3D"color:#000"> v </span><span style=3D"color:#660">),</span><span styl=
e=3D"color:#000"> value </span><span style=3D"color:#660">)</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#660">)</span><span style=3D=
"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:#080">&#39;\n&#39;</span><span style=
=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span=
><span style=3D"color:#660">}</span><span style=3D"color:#000"><br>=C2=A0 =
=C2=A0 </span><span style=3D"color:#008">else</span><span style=3D"color:#0=
00"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</span><span style=
=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"co=
lor:#660">::</span><span style=3D"color:#000">cout </span><span style=3D"co=
lor:#660">&lt;&lt;</span><span style=3D"color:#000"> value </span><span sty=
le=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span><span s=
tyle=3D"color:#080">&quot; has not been found.\n&quot;</span><span style=3D=
"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><s=
pan style=3D"color:#660">}</span><span style=3D"color:#000"><br><br><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#008">if</span><span style=3D"color:=
#000"> </span><span style=3D"color:#660">(</span><span style=3D"color:#000"=
> any_of_equal_to</span><span style=3D"color:#660">(</span><span style=3D"c=
olor:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"co=
lor:#008">begin</span><span style=3D"color:#660">(</span><span style=3D"col=
or:#000"> v </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">end</span><span style=3D"color:#660">(</span><span style=3D"color:#00=
0"> v </span><span style=3D"color:#660">),</span><span style=3D"color:#000"=
> value </span><span style=3D"color:#660">)</span><span style=3D"color:#000=
"> </span><span style=3D"color:#660">)</span><span style=3D"color:#000"><br=
>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</span><span style=3D"col=
or:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#66=
0">::</span><span style=3D"color:#000">cout </span><span style=3D"color:#66=
0">&lt;&lt;</span><span style=3D"color:#000"> </span><span style=3D"color:#=
080">&quot;A value not equal to &quot;</span><span style=3D"color:#000"> </=
span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> =
value </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color=
:#000"> </span><span style=3D"color:#080">&quot; is encountered at position=
 &quot;</span><span style=3D"color:#000"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&l=
t;</span><span style=3D"color:#000"> std</span><span style=3D"color:#660">:=
:</span><span style=3D"color:#000">distance</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">begin</span><span style=3D"color:#660">=
(</span><span style=3D"color:#000"> v </span><span style=3D"color:#660">),<=
/span><span style=3D"color:#000"> find_not_equal_to</span><span style=3D"co=
lor:#660">(</span><span style=3D"color:#000"> std</span><span style=3D"colo=
r:#660">::</span><span style=3D"color:#008">begin</span><span style=3D"colo=
r:#660">(</span><span style=3D"color:#000"> v </span><span style=3D"color:#=
660">),</span><span style=3D"color:#000"> std</span><span style=3D"color:#6=
60">::</span><span style=3D"color:#008">end</span><span style=3D"color:#660=
">(</span><span style=3D"color:#000"> v </span><span style=3D"color:#660">)=
,</span><span style=3D"color:#000"> value </span><span style=3D"color:#660"=
>)</span><span style=3D"color:#000"> </span><span style=3D"color:#660">)</s=
pan><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;</span><=
span style=3D"color:#000"> </span><span style=3D"color:#080">&#39;\n&#39;</=
span><span style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#660">}</span><span style=3D"color:#=
000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">else</span><span s=
tyle=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</=
span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><=
span style=3D"color:#660">::</span><span style=3D"color:#000">cout </span><=
span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span=
><span style=3D"color:#080">&quot;A value not equal to &quot;</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#660">&lt;&lt;</span><span=
 style=3D"color:#000"> value </span><span style=3D"color:#660">&lt;&lt;</sp=
an><span style=3D"color:#000"> </span><span style=3D"color:#080">&quot; has=
 not been found.\n&quot;</span><span style=3D"color:#660">;</span><span sty=
le=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">}</sp=
an><span style=3D"color:#000"><br><br><br>=C2=A0 =C2=A0 </span><span style=
=3D"color:#008">if</span><span style=3D"color:#000"> </span><span style=3D"=
color:#660">(</span><span style=3D"color:#000"> any_of_greater</span><span =
style=3D"color:#660">(</span><span style=3D"color:#000"> std</span><span st=
yle=3D"color:#660">::</span><span style=3D"color:#008">begin</span><span st=
yle=3D"color:#660">(</span><span style=3D"color:#000"> v </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">end</span><span style=
=3D"color:#660">(</span><span style=3D"color:#000"> v </span><span style=3D=
"color:#660">),</span><span style=3D"color:#000"> value </span><span style=
=3D"color:#660">)</span><span style=3D"color:#000"> </span><span style=3D"c=
olor:#660">)</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><spa=
n style=3D"color:#660">{</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 std</span><span style=3D"color:#660">::</span><span style=3D=
"color:#000">cout </span><span style=3D"color:#660">&lt;&lt;</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#080">&quot;A value greater=
 than &quot;</span><span style=3D"color:#000"> </span><span style=3D"color:=
#660">&lt;&lt;</span><span style=3D"color:#000"> value </span><span style=
=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span><span sty=
le=3D"color:#080">&quot; is encountered at position &quot;</span><span styl=
e=3D"color:#000"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"=
color:#000"> std</span><span style=3D"color:#660">::</span><span style=3D"c=
olor:#000">distance</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">begin</span><span style=3D"color:#660">(</span><span style=3D"c=
olor:#000"> v </span><span style=3D"color:#660">),</span><span style=3D"col=
or:#000"> find_greater</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">begin</span><span style=3D"color:#660">(</span><span style=
=3D"color:#000"> v </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">end</span><span style=3D"color:#660">(</span><span style=3D=
"color:#000"> v </span><span style=3D"color:#660">),</span><span style=3D"c=
olor:#000"> value </span><span style=3D"color:#660">)</span><span style=3D"=
color:#000"> </span><span style=3D"color:#660">)</span><span style=3D"color=
:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <=
/span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000">=
 </span><span style=3D"color:#080">&#39;\n&#39;</span><span style=3D"color:=
#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span sty=
le=3D"color:#660">}</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </sp=
an><span style=3D"color:#008">else</span><span style=3D"color:#000"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#660">{</span><span style=3D"color:#=
000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660">:=
:</span><span style=3D"color:#000">cout </span><span style=3D"color:#660">&=
lt;&lt;</span><span style=3D"color:#000"> </span><span style=3D"color:#080"=
>&quot;A value greater than &quot;</span><span style=3D"color:#000"> </span=
><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> valu=
e </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#00=
0"> </span><span style=3D"color:#080">&quot; has not been found.\n&quot;</s=
pan><span style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#660">}</span><span style=3D"color:#=
000"><br><br><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">if</span><=
span style=3D"color:#000"> </span><span style=3D"color:#660">(</span><span =
style=3D"color:#000"> any_of_less</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">begin</span><span style=3D"color:#660">(</span><s=
pan style=3D"color:#000"> v </span><span style=3D"color:#660">),</span><spa=
n style=3D"color:#000"> std</span><span style=3D"color:#660">::</span><span=
 style=3D"color:#008">end</span><span style=3D"color:#660">(</span><span st=
yle=3D"color:#000"> v </span><span style=3D"color:#660">),</span><span styl=
e=3D"color:#000"> value </span><span style=3D"color:#660">)</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#660">)</span><span style=3D=
"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</span><s=
pan style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span st=
yle=3D"color:#660">::</span><span style=3D"color:#000">cout </span><span st=
yle=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span><span =
style=3D"color:#080">&quot;A value less than &quot;</span><span style=3D"co=
lor:#000"> </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"=
color:#000"> value </span><span style=3D"color:#660">&lt;&lt;</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#080">&quot; is encountere=
d at position &quot;</span><span style=3D"color:#000"> <br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"colo=
r:#660">&lt;&lt;</span><span style=3D"color:#000"> std</span><span style=3D=
"color:#660">::</span><span style=3D"color:#000">distance</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">begin</span><span style=
=3D"color:#660">(</span><span style=3D"color:#000"> v </span><span style=3D=
"color:#660">),</span><span style=3D"color:#000"> find_less</span><span sty=
le=3D"color:#660">(</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"> v </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">end</span><span style=3D"co=
lor:#660">(</span><span style=3D"color:#000"> v </span><span style=3D"color=
:#660">),</span><span style=3D"color:#000"> value </span><span style=3D"col=
or:#660">)</span><span style=3D"color:#000"> </span><span style=3D"color:#6=
60">)</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;<=
/span><span style=3D"color:#000"> </span><span style=3D"color:#080">&#39;\n=
&#39;</span><span style=3D"color:#660">;</span><span style=3D"color:#000"><=
br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">}</span><span style=3D"c=
olor:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">else</span><=
span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#66=
0">{</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</=
span><span style=3D"color:#660">::</span><span style=3D"color:#000">cout </=
span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> =
</span><span style=3D"color:#080">&quot;A value less than &quot;</span><spa=
n style=3D"color:#000"> </span><span style=3D"color:#660">&lt;&lt;</span><s=
pan style=3D"color:#000"> value </span><span style=3D"color:#660">&lt;&lt;<=
/span><span style=3D"color:#000"> </span><span style=3D"color:#080">&quot; =
has not been found.\n&quot;</span><span style=3D"color:#660">;</span><span =
style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">}<=
/span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 </span=
><span style=3D"color:#008">if</span><span style=3D"color:#000"> </span><sp=
an style=3D"color:#660">(</span><span style=3D"color:#000"> any_of_greater_=
equal</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">be=
gin</span><span style=3D"color:#660">(</span><span style=3D"color:#000"> v =
</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">end</s=
pan><span style=3D"color:#660">(</span><span style=3D"color:#000"> v </span=
><span style=3D"color:#660">),</span><span style=3D"color:#000"> value </sp=
an><span style=3D"color:#660">)</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#660">)</span><span style=3D"color:#000"><br>=C2=A0 =C2=
=A0 </span><span style=3D"color:#660">{</span><span style=3D"color:#000"><b=
r>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660">::</span=
><span style=3D"color:#000">cout </span><span style=3D"color:#660">&lt;&lt;=
</span><span style=3D"color:#000"> </span><span style=3D"color:#080">&quot;=
A value greater than or equal to &quot;</span><span style=3D"color:#000"> <=
/span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000">=
 value </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:#080">&quot; is encountered at positio=
n &quot;</span><span style=3D"color:#000"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&l=
t;</span><span style=3D"color:#000"> std</span><span style=3D"color:#660">:=
:</span><span style=3D"color:#000">distance</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">begin</span><span style=3D"color:#660">=
(</span><span style=3D"color:#000"> v </span><span style=3D"color:#660">),<=
/span><span style=3D"color:#000"> find_greater_equal</span><span style=3D"c=
olor:#660">(</span><span style=3D"color:#000"> std</span><span style=3D"col=
or:#660">::</span><span style=3D"color:#008">begin</span><span style=3D"col=
or:#660">(</span><span style=3D"color:#000"> v </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">end</span><span style=3D"color:#66=
0">(</span><span style=3D"color:#000"> v </span><span style=3D"color:#660">=
),</span><span style=3D"color:#000"> value </span><span style=3D"color:#660=
">)</span><span style=3D"color:#000"> </span><span style=3D"color:#660">)</=
span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;</span><=
span style=3D"color:#000"> </span><span style=3D"color:#080">&#39;\n&#39;</=
span><span style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=
=A0 =C2=A0 </span><span style=3D"color:#660">}</span><span style=3D"color:#=
000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#008">else</span><span s=
tyle=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</=
span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><=
span style=3D"color:#660">::</span><span style=3D"color:#000">cout </span><=
span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span=
><span style=3D"color:#080">&quot;A value greater than or equal to &quot;</=
span><span style=3D"color:#000"> </span><span style=3D"color:#660">&lt;&lt;=
</span><span style=3D"color:#000"> value </span><span style=3D"color:#660">=
&lt;&lt;</span><span style=3D"color:#000"> </span><span style=3D"color:#080=
">&quot; has not been found.\n&quot;</span><span style=3D"color:#660">;</sp=
an><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color=
:#660">}</span><span style=3D"color:#000"><br><br><br>=C2=A0 =C2=A0 </span>=
<span style=3D"color:#008">if</span><span style=3D"color:#000"> </span><spa=
n style=3D"color:#660">(</span><span style=3D"color:#000"> any_of_less_equa=
l</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">begin<=
/span><span style=3D"color:#660">(</span><span style=3D"color:#000"> v </sp=
an><span style=3D"color:#660">),</span><span style=3D"color:#000"> std</spa=
n><span style=3D"color:#660">::</span><span style=3D"color:#008">end</span>=
<span style=3D"color:#660">(</span><span style=3D"color:#000"> v </span><sp=
an style=3D"color:#660">),</span><span style=3D"color:#000"> value </span><=
span style=3D"color:#660">)</span><span style=3D"color:#000"> </span><span =
style=3D"color:#660">)</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 <=
/span><span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span style=3D"color:#660">::</span><spa=
n style=3D"color:#000">cout </span><span style=3D"color:#660">&lt;&lt;</spa=
n><span style=3D"color:#000"> </span><span style=3D"color:#080">&quot;A val=
ue less than or equal to &quot;</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> value <=
/span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000">=
 </span><span style=3D"color:#080">&quot; is encountered at position &quot;=
</span><span style=3D"color:#000"> <br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;</spa=
n><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</span=
><span style=3D"color:#000">distance</span><span style=3D"color:#660">(</sp=
an><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</spa=
n><span style=3D"color:#008">begin</span><span style=3D"color:#660">(</span=
><span style=3D"color:#000"> v </span><span style=3D"color:#660">),</span><=
span style=3D"color:#000"> find_less_equal</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">begin</span><span style=3D"color:#660">(=
</span><span style=3D"color:#000"> v </span><span style=3D"color:#660">),</=
span><span style=3D"color:#000"> std</span><span style=3D"color:#660">::</s=
pan><span style=3D"color:#008">end</span><span style=3D"color:#660">(</span=
><span style=3D"color:#000"> v </span><span style=3D"color:#660">),</span><=
span style=3D"color:#000"> value </span><span style=3D"color:#660">)</span>=
<span style=3D"color:#000"> </span><span style=3D"color:#660">)</span><span=
 style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 </span><span style=3D"color:#660">&lt;&lt;</span><span style=
=3D"color:#000"> </span><span style=3D"color:#080">&#39;\n&#39;</span><span=
 style=3D"color:#660">;</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 =
</span><span style=3D"color:#660">}</span><span style=3D"color:#000"><br>=
=C2=A0 =C2=A0 </span><span style=3D"color:#008">else</span><span style=3D"c=
olor:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">{</span><spa=
n style=3D"color:#000"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 std</span><span styl=
e=3D"color:#660">::</span><span style=3D"color:#000">cout </span><span styl=
e=3D"color:#660">&lt;&lt;</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#080">&quot;A value less than or equal to &quot;</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#660">&lt;&lt;</span><span=
 style=3D"color:#000"> value </span><span style=3D"color:#660">&lt;&lt;</sp=
an><span style=3D"color:#000"> </span><span style=3D"color:#080">&quot; has=
 not been found.\n&quot;</span><span style=3D"color:#660">;</span><span sty=
le=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span style=3D"color:#660">}</sp=
an><span style=3D"color:#000"><br></span><span style=3D"color:#660">}</span=
></div></code></div><div><br>Its output might look like</div><div><br></div=
><div><pre style=3D"overflow:auto;font-family:&quot;Courier New&quot;,monos=
pace;line-height:1.42857;color:rgb(255,255,255);word-break:break-all;word-w=
rap:break-word;background-color:rgb(0,0,0);border-radius:4px;white-space:pr=
e-wrap">6 9 0 2 8 1 2 8 3 4=20
1 is encountered at position 5
A value not equal to 1 is encountered at position 0
A value greater than 1 is encountered at position 0
A value less than 1 is encountered at position 2
A value greater than or equal to 1 is encountered at position 0
A value less than or equal to 1 is encountered at position 2</pre></div><di=
v><br></div><br>=D1=81=D1=83=D0=B1=D0=B1=D0=BE=D1=82=D0=B0, 15 =D1=81=D0=B5=
=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 12:26:40 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 M=
oscow =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;padd=
ing-left:1ex"><div dir=3D"ltr">There are already standard function object t=
ypes in the C++ Standard<div><br></div><div><span style=3D"font-family:LMMo=
no9-Regular;font-size:8pt;color:rgb(0,0,0)"><div style=3D"background-color:=
rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;border-wi=
dth:1px;word-wrap:break-word"><code><div><span style=3D"color:#008">templat=
e</span><span style=3D"color:#660">&lt;</span><span style=3D"color:#008">cl=
ass</span><span style=3D"color:#000"> T </span><span style=3D"color:#660">=
=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#008">voi=
d</span><span style=3D"color:#660">&gt;</span><span style=3D"color:#000"> <=
/span><span style=3D"color:#008">struct</span><span style=3D"color:#000"> e=
qual_to</span><span style=3D"color:#660">;</span><span style=3D"color:#000"=
><br></span><span style=3D"color:#008">template</span><span style=3D"color:=
#660">&lt;</span><span style=3D"color:#008">class</span><span style=3D"colo=
r:#000"> T </span><span style=3D"color:#660">=3D</span><span style=3D"color=
:#000"> </span><span style=3D"color:#008">void</span><span style=3D"color:#=
660">&gt;</span><span style=3D"color:#000"> </span><span style=3D"color:#00=
8">struct</span><span style=3D"color:#000"> not_equal_to</span><span style=
=3D"color:#660">;</span><span style=3D"color:#000"><br></span><span style=
=3D"color:#008">template</span><span style=3D"color:#660">&lt;</span><span =
style=3D"color:#008">class</span><span style=3D"color:#000"> T </span><span=
 style=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#008">void</span><span style=3D"color:#660">&gt;</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#008">struct</span><span s=
tyle=3D"color:#000"> greater</span><span style=3D"color:#660">;</span><span=
 style=3D"color:#000"><br></span><span style=3D"color:#008">template</span>=
<span style=3D"color:#660">&lt;</span><span style=3D"color:#008">class</spa=
n><span style=3D"color:#000"> T </span><span style=3D"color:#660">=3D</span=
><span style=3D"color:#000"> </span><span style=3D"color:#008">void</span><=
span style=3D"color:#660">&gt;</span><span style=3D"color:#000"> </span><sp=
an style=3D"color:#008">struct</span><span style=3D"color:#000"> less</span=
><span style=3D"color:#660">;</span><span style=3D"color:#000"><br></span><=
span style=3D"color:#008">template</span><span style=3D"color:#660">&lt;</s=
pan><span style=3D"color:#008">class</span><span style=3D"color:#000"> T </=
span><span style=3D"color:#660">=3D</span><span style=3D"color:#000"> </spa=
n><span style=3D"color:#008">void&lt;/spa</span></div></code></div></span><=
/div></div></blockquote></div></div></blockquote></div>
</blockquote></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; 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/15dd16e8-a336-4f73-91b0-edbf626d7ad3%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/15dd16e8-a336-=
4f73-91b0-edbf626d7ad3%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&quot; 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/CALmDwq1z-AvQMSO60d86RQOS3gVhhBHm4R2S=
ao5Rq57K%2BsZe-w%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CALmDwq1z-AvQMS=
O60d86RQOS3gVhhBHm4R2Sao5Rq57K%2BsZe-w%40mail.gmail.com</a>.<br />

--000000000000df3d640576397d2f--

.


Author: Barry Revzin <barry.revzin@gmail.com>
Date: Wed, 19 Sep 2018 06:55:46 -0700 (PDT)
Raw View
------=_Part_2714_169763941.1537365347022
Content-Type: multipart/alternative;
 boundary="----=_Part_2715_1632279646.1537365347023"

------=_Part_2715_1632279646.1537365347023
Content-Type: text/plain; charset="UTF-8"



On Wednesday, September 19, 2018 at 7:32:04 AM UTC-5, Vlad from Moscow
wrote:
>
> Here is a simple demonstrative program
>


This is what higher order functions are for. You're not changing the
*algorithm* anywhere here, you're only changing the *predicate*. What you
want is to just make it easier to create those predicates. For instance,
add:

template <typename T>
auto less_than(T const& v) {
    return [&v](auto const& x) { return x < v; };
}

And now instead of writing whole new algorithms for find_less() and
any_of_less(), you can use the already existing algorithms (which are
familiar to everyone) with a custom, self-documenting predicate:

if (any_of(begin(v), end(v), less_than(value)) {
  std::cout << distance(begin(v), find_if(begin(v), end(v), less_than(value
)));
}

If we're going to change anything around making this easier, the part I'd
like to change is to make it easier to write the lambda

[&value](auto const& x){ return x < value; }

That's a lot of characters for something Scala, for instance, would spell:

_ < value


--
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/54dc7261-d859-403a-99d7-e633e43fba93%40isocpp.org.

------=_Part_2715_1632279646.1537365347023
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>On Wednesday, September 19, 2018 at 7:32:04 AM UTC=
-5, Vlad from Moscow wrote:<blockquote class=3D"gmail_quote" style=3D"margi=
n: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><di=
v dir=3D"ltr">Here is a simple demonstrative program</div></blockquote><div=
><br></div><div><br></div><div>This is what higher order functions are for.=
 You&#39;re not changing the <i>algorithm</i>=C2=A0anywhere here, you&#39;r=
e only changing the <i>predicate</i>. What you want is to just make it easi=
er to create those predicates. For instance, add:</div><div><br></div><div>=
<div class=3D"prettyprint" style=3D"background-color: rgb(250, 250, 250); b=
order-color: rgb(187, 187, 187); border-style: solid; border-width: 1px; wo=
rd-wrap: break-word;"><code class=3D"prettyprint"><div class=3D"subprettypr=
int"><font color=3D"#660066"><span style=3D"color: #008;" class=3D"styled-b=
y-prettify">template</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>&lt;</span><span style=3D"color: #008;" class=3D"styled-by-prettify">typen=
ame</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> T</spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">&gt;</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span styl=
e=3D"color: #008;" class=3D"styled-by-prettify">auto</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> less_than</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify">T </span><span style=3D"color: #008;" clas=
s=3D"styled-by-prettify">const</span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">&amp;</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> v</span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">)</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> <=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </=
span><span style=3D"color: #008;" class=3D"styled-by-prettify">return</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">[&amp;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify">v</span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">](</span><span style=3D"color: #008;"=
 class=3D"styled-by-prettify">auto</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"style=
d-by-prettify">const</span><span style=3D"color: #660;" class=3D"styled-by-=
prettify">&amp;</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> x</span><span style=3D"color: #660;" class=3D"styled-by-prettify">)</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">{</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">return</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"> x </span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">&lt;</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> v</span><span style=3D"color: #660;" class=3D"styled-=
by-prettify">;</span><span style=3D"color: #000;" class=3D"styled-by-pretti=
fy"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">};</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><s=
pan style=3D"color: #660;" class=3D"styled-by-prettify">}</span></font></di=
v></code></div><br>And now instead of writing whole new algorithms for find=
_less() and any_of_less(), you can use the already existing algorithms (whi=
ch are familiar to everyone) with a custom, self-documenting predicate:</di=
v><div><br></div><div><div class=3D"prettyprint" style=3D"background-color:=
 rgb(250, 250, 250); border-color: rgb(187, 187, 187); border-style: solid;=
 border-width: 1px; word-wrap: break-word;"><code class=3D"prettyprint"><di=
v class=3D"subprettyprint"><font color=3D"#660066"><span style=3D"color: #0=
08;" class=3D"styled-by-prettify">if</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify">any_of</span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">(</span><span style=3D"color: #008;" class=3D"styled-by-prettify">begin=
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify">v</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">),</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;"=
 class=3D"styled-by-prettify">end</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify">v</span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">),</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> l=
ess_than</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify">value</span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">))</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">{</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"><br>=C2=A0 std</span><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify">cout </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">&lt;&lt;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> distance</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">(</span><span style=3D"color: #008;" class=3D"style=
d-by-prettify">begin</span><span style=3D"color: #660;" class=3D"styled-by-=
prettify">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
>v</span><span style=3D"color: #660;" class=3D"styled-by-prettify">),</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify"> find_if</span><=
span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span styl=
e=3D"color: #008;" class=3D"styled-by-prettify">begin</span><span style=3D"=
color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify">v</span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">),</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-pr=
ettify">end</span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>(</span><span style=3D"color: #000;" class=3D"styled-by-prettify">v</span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">),</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> less_than</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify">value</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">)));</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"><br></span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">}</span></font></div></code></div><br>If we&#39;re =
going to change anything around making this easier, the part I&#39;d like t=
o change is to make it easier to write the lambda</div><div><br></div><div>=
<div class=3D"prettyprint" style=3D"background-color: rgb(250, 250, 250); b=
order-color: rgb(187, 187, 187); border-style: solid; border-width: 1px; wo=
rd-wrap: break-word;"><code class=3D"prettyprint"><div class=3D"subprettypr=
int"><font color=3D"#660066"><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">[&amp;</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify">value</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">](</span><span style=3D"color: #008;" class=3D"styled-by-prettify">auto<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><sp=
an style=3D"color: #008;" class=3D"styled-by-prettify">const</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">&amp;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> x</span><span style=3D"colo=
r: #660;" class=3D"styled-by-prettify">){</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">return</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"> x </span><span style=3D"color: #660;" class=3D"styled-=
by-prettify">&lt;</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify"> value</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">}</span></font>=
</div></code></div><br>That&#39;s a lot of characters for something Scala, =
for instance, would spell:</div><div><br></div><div><div class=3D"prettypri=
nt" style=3D"background-color: rgb(250, 250, 250); border-color: rgb(187, 1=
87, 187); border-style: solid; border-width: 1px; word-wrap: break-word;"><=
code class=3D"prettyprint"><div class=3D"subprettyprint"><font color=3D"#66=
0066"><span style=3D"color: #000;" class=3D"styled-by-prettify">_ </span><s=
pan style=3D"color: #660;" class=3D"styled-by-prettify">&lt;</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> value</span></font></div=
></code></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&quot; 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/54dc7261-d859-403a-99d7-e633e43fba93%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/54dc7261-d859-403a-99d7-e633e43fba93=
%40isocpp.org</a>.<br />

------=_Part_2715_1632279646.1537365347023--

------=_Part_2714_169763941.1537365347022--

.


Author: "'Vlad from Moscow' via ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Date: Wed, 19 Sep 2018 07:04:40 -0700 (PDT)
Raw View
------=_Part_2628_2095073990.1537365880318
Content-Type: multipart/alternative;
 boundary="----=_Part_2629_2027052047.1537365880319"

------=_Part_2629_2027052047.1537365880319
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

As I wrote already the code presented by you is too complicated.

First of all the user have to write a predicate himself though such a=20
predicate is already exists in the standard library. This makes the program=
=20
full of redundant code.=20
Secondly a reader of the code have to read a whole expression statement to=
=20
understand what the statement does.

In my case it is enough to read only the name of an algorithm.

=D1=81=D1=80=D0=B5=D0=B4=D0=B0, 19 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=
=80=D1=8F 2018 =D0=B3., 16:55:47 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 Barry Revzin=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
>
>
> On Wednesday, September 19, 2018 at 7:32:04 AM UTC-5, Vlad from Moscow=20
> wrote:
>>
>> Here is a simple demonstrative program
>>
>
>
> This is what higher order functions are for. You're not changing the=20
> *algorithm* anywhere here, you're only changing the *predicate*. What you=
=20
> want is to just make it easier to create those predicates. For instance,=
=20
> add:
>
> template <typename T>
> auto less_than(T const& v) {
>     return [&v](auto const& x) { return x < v; };
> }
>
> And now instead of writing whole new algorithms for find_less() and=20
> any_of_less(), you can use the already existing algorithms (which are=20
> familiar to everyone) with a custom, self-documenting predicate:
>
> if (any_of(begin(v), end(v), less_than(value)) {
>   std::cout << distance(begin(v), find_if(begin(v), end(v), less_than(
> value)));
> }
>
> If we're going to change anything around making this easier, the part I'd=
=20
> like to change is to make it easier to write the lambda
>
> [&value](auto const& x){ return x < value; }
>
> That's a lot of characters for something Scala, for instance, would spell=
:
>
> _ < value
>
>
>

--=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/452e30eb-6468-4185-8e36-c9f8838ad8c4%40isocpp.or=
g.

------=_Part_2629_2027052047.1537365880319
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">As I wrote already the code presented by you is too compli=
cated.<div><br></div><div>First of all the user have to write a predicate h=
imself though such a predicate is already exists in the standard library. T=
his makes the program full of redundant code.=C2=A0<br>Secondly a reader of=
 the code have to read a whole expression statement to understand what the =
statement does.</div><div><br></div><div>In my case it is enough to read on=
ly the name of an algorithm.</div><div><br>=D1=81=D1=80=D0=B5=D0=B4=D0=B0, =
19 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2018 =D0=B3., 16:55:47 =
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 Barry Revzin =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote cla=
ss=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #=
ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><br><br>On Wednesday, Septem=
ber 19, 2018 at 7:32:04 AM UTC-5, Vlad from Moscow wrote:<blockquote class=
=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc s=
olid;padding-left:1ex"><div dir=3D"ltr">Here is a simple demonstrative prog=
ram</div></blockquote><div><br></div><div><br></div><div>This is what highe=
r order functions are for. You&#39;re not changing the <i>algorithm</i>=C2=
=A0anywhere here, you&#39;re only changing the <i>predicate</i>. What you w=
ant is to just make it easier to create those predicates. For instance, add=
:</div><div><br></div><div><div style=3D"background-color:rgb(250,250,250);=
border-color:rgb(187,187,187);border-style:solid;border-width:1px;word-wrap=
:break-word"><code><div><font color=3D"#660066"><span style=3D"color:#008">=
template</span><span style=3D"color:#000"> </span><span style=3D"color:#660=
">&lt;</span><span style=3D"color:#008">typename</span><span style=3D"color=
:#000"> T</span><span style=3D"color:#660">&gt;</span><span style=3D"color:=
#000"><br></span><span style=3D"color:#008">auto</span><span style=3D"color=
:#000"> less_than</span><span style=3D"color:#660">(</span><span style=3D"c=
olor:#000">T </span><span style=3D"color:#008">const</span><span style=3D"c=
olor:#660">&amp;</span><span style=3D"color:#000"> v</span><span style=3D"c=
olor:#660">)</span><span style=3D"color:#000"> </span><span style=3D"color:=
#660">{</span><span style=3D"color:#000"><br>=C2=A0 =C2=A0 </span><span sty=
le=3D"color:#008">return</span><span style=3D"color:#000"> </span><span sty=
le=3D"color:#660">[&amp;</span><span style=3D"color:#000">v</span><span sty=
le=3D"color:#660">](</span><span style=3D"color:#008">auto</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#008">const</span><span style=
=3D"color:#660">&amp;</span><span style=3D"color:#000"> x</span><span style=
=3D"color:#660">)</span><span style=3D"color:#000"> </span><span style=3D"c=
olor:#660">{</span><span style=3D"color:#000"> </span><span style=3D"color:=
#008">return</span><span style=3D"color:#000"> x </span><span style=3D"colo=
r:#660">&lt;</span><span style=3D"color:#000"> v</span><span style=3D"color=
:#660">;</span><span style=3D"color:#000"> </span><span style=3D"color:#660=
">};</span><span style=3D"color:#000"><br></span><span style=3D"color:#660"=
>}</span></font></div></code></div><br>And now instead of writing whole new=
 algorithms for find_less() and any_of_less(), you can use the already exis=
ting algorithms (which are familiar to everyone) with a custom, self-docume=
nting predicate:</div><div><br></div><div><div style=3D"background-color:rg=
b(250,250,250);border-color:rgb(187,187,187);border-style:solid;border-widt=
h:1px;word-wrap:break-word"><code><div><font color=3D"#660066"><span style=
=3D"color:#008">if</span><span style=3D"color:#000"> </span><span style=3D"=
color:#660">(</span><span style=3D"color:#000">any_of</span><span style=3D"=
color:#660">(</span><span style=3D"color:#008">begin</span><span style=3D"c=
olor:#660">(</span><span style=3D"color:#000">v</span><span style=3D"color:=
#660">),</span><span style=3D"color:#000"> </span><span style=3D"color:#008=
">end</span><span style=3D"color:#660">(</span><span style=3D"color:#000">v=
</span><span style=3D"color:#660">),</span><span style=3D"color:#000"> less=
_than</span><span style=3D"color:#660">(</span><span style=3D"color:#000">v=
alue</span><span style=3D"color:#660">))</span><span style=3D"color:#000"> =
</span><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">cout </span><span style=3D"color:#660">&lt;&lt;</span><span style=3D"c=
olor:#000"> distance</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">v</span><span style=3D"color:#660">),</span><span style=3D"=
color:#000"> find_if</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">v</span><span style=3D"color:#660">),</span><span style=3D"=
color:#000"> </span><span style=3D"color:#008">end</span><span style=3D"col=
or:#660">(</span><span style=3D"color:#000">v</span><span style=3D"color:#6=
60">),</span><span style=3D"color:#000"> less_than</span><span style=3D"col=
or:#660">(</span><span style=3D"color:#000">value</span><span style=3D"colo=
r:#660">)));</span><span style=3D"color:#000"><br></span><span style=3D"col=
or:#660">}</span></font></div></code></div><br>If we&#39;re going to change=
 anything around making this easier, the part I&#39;d like to change is to =
make it easier to write the lambda</div><div><br></div><div><div style=3D"b=
ackground-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style=
:solid;border-width:1px;word-wrap:break-word"><code><div><font color=3D"#66=
0066"><span style=3D"color:#660">[&amp;</span><span style=3D"color:#000">va=
lue</span><span style=3D"color:#660">](</span><span style=3D"color:#008">au=
to</span><span style=3D"color:#000"> </span><span style=3D"color:#008">cons=
t</span><span style=3D"color:#660">&amp;</span><span style=3D"color:#000"> =
x</span><span style=3D"color:#660">){</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#008">return</span><span style=3D"color:#000"> x <=
/span><span style=3D"color:#660">&lt;</span><span style=3D"color:#000"> val=
ue</span><span style=3D"color:#660">;</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#660">}</span></font></div></code></div><br>That&#=
39;s a lot of characters for something Scala, for instance, would spell:</d=
iv><div><br></div><div><div style=3D"background-color:rgb(250,250,250);bord=
er-color:rgb(187,187,187);border-style:solid;border-width:1px;word-wrap:bre=
ak-word"><code><div><font color=3D"#660066"><span style=3D"color:#000">_ </=
span><span style=3D"color:#660">&lt;</span><span style=3D"color:#000"> valu=
e</span></font></div></code></div><br><br></div></div></blockquote></div></=
div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; 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/452e30eb-6468-4185-8e36-c9f8838ad8c4%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/452e30eb-6468-4185-8e36-c9f8838ad8c4=
%40isocpp.org</a>.<br />

------=_Part_2629_2027052047.1537365880319--

------=_Part_2628_2095073990.1537365880318--

.


Author: "'Vlad from Moscow' via ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Date: Thu, 20 Sep 2018 05:42:41 -0700 (PDT)
Raw View
------=_Part_257_814616620.1537447361271
Content-Type: multipart/alternative;
 boundary="----=_Part_258_1470883809.1537447361272"

------=_Part_258_1470883809.1537447361272
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Let's suppose that a programmer by mistake wrote something like

if ( auto target =3D std::find( std::begin( v ), std::end( v ), value );=20
target !=3D std::end( v ) )
{
    //...
}


But actually he needed to find an element that is less than the value.

Another programmer found the error and had to fix the bug.

In my case all that he needs to do is just to append the word *find* with=
=20
the word *_less *without changing the argument expressions.

This makes supporting of code very easy.

In your case the programmer has several options that in general lead to=20
redundant code.

First of all he can fully rewrite the call using an inline lambda for=20
example using *std::bind*.

Secondly he can at first define the lambda in a local scope using the name =
*less_than=20
*that already was defined in some module or header.

Thirdly he can at first look through all headers to determine whether the=
=20
name *less_than* is already defined. If he will be lucky he finds the name.=
=20
But the name can be defined in a module. In this case he won't find the=20
name and define it one more in the updated module or in the bset case in a=
=20
header. However the name can be defined already in some module.

The problem is that the name* less_than* is not a standard name and must be=
=20
defined.. And moreover the call expression of the algorithm shall be=20
entirely rewritten.:)

=D1=81=D1=80=D0=B5=D0=B4=D0=B0, 19 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=
=80=D1=8F 2018 =D0=B3., 16:55:47 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 Barry Revzin=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
>
>
> On Wednesday, September 19, 2018 at 7:32:04 AM UTC-5, Vlad from Moscow=20
> wrote:
>>
>> Here is a simple demonstrative program
>>
>
>
> This is what higher order functions are for. You're not changing the=20
> *algorithm* anywhere here, you're only changing the *predicate*. What you=
=20
> want is to just make it easier to create those predicates. For instance,=
=20
> add:
>
> template <typename T>
> auto less_than(T const& v) {
>     return [&v](auto const& x) { return x < v; };
> }
>
> And now instead of writing whole new algorithms for find_less() and=20
> any_of_less(), you can use the already existing algorithms (which are=20
> familiar to everyone) with a custom, self-documenting predicate:
>
> if (any_of(begin(v), end(v), less_than(value)) {
>   std::cout << distance(begin(v), find_if(begin(v), end(v), less_than(
> value)));
> }
>
> If we're going to change anything around making this easier, the part I'd=
=20
> like to change is to make it easier to write the lambda
>
> [&value](auto const& x){ return x < value; }
>
> That's a lot of characters for something Scala, for instance, would spell=
:
>
> _ < value
>
>
>

--=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/1e72d5be-22e0-4c03-bd58-1ba830a2b907%40isocpp.or=
g.

------=_Part_258_1470883809.1537447361272
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Let&#39;s suppose that a programmer by mistake wrote somet=
hing like<div><br></div><div class=3D"prettyprint" style=3D"background-colo=
r: rgb(250, 250, 250); border-color: rgb(187, 187, 187); border-style: soli=
d; border-width: 1px; overflow-wrap: break-word;"><code class=3D"prettyprin=
t"><div class=3D"subprettyprint"><span style=3D"color: #008;" class=3D"styl=
ed-by-prettify">if</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">(=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><s=
pan style=3D"color: #008;" class=3D"styled-by-prettify">auto</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> target </span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify">find</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"> std</span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">::</span><span style=3D"color: #008;" class=3D"styled-by-prettify">be=
gin</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify"> v </span><span =
style=3D"color: #660;" class=3D"styled-by-prettify">),</span><span style=3D=
"color: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #008;"=
 class=3D"styled-by-prettify">end</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> v </span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">),</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 value </span><span style=3D"color: #660;" class=3D"styled-by-prettify">);<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> target </s=
pan><span style=3D"color: #660;" class=3D"styled-by-prettify">!=3D</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D"c=
olor: #008;" class=3D"styled-by-prettify">end</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"> v </span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">)</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>)</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></sp=
an><span style=3D"color: #660;" class=3D"styled-by-prettify">{</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =C2=A0 </spa=
n><span style=3D"color: #800;" class=3D"styled-by-prettify">//...</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">}</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"><br><br></span></div></code></div><=
div><br>But actually he needed to find an element that is less than the val=
ue.</div><div><br></div><div>Another programmer found the error and had to =
fix the bug.</div><div><br></div><div>In my case all that he needs to do is=
 just to append the word <b>find</b> with the word=C2=A0<b>_less=C2=A0</b>w=
ithout changing the argument expressions.</div><div><br></div><div>This mak=
es supporting of code very easy.</div><div><br></div><div>In your case the =
programmer has several options that in general lead to redundant code.</div=
><div><br></div><div>First of all he can fully rewrite the call using an in=
line lambda for example using <b>std::bind</b>.</div><div><br></div><div>Se=
condly he can at first define the lambda in a local scope using the name <b=
>less_than </b>that already was defined in some module or header.</div><div=
><br></div><div>Thirdly he can at first look through all headers to determi=
ne whether the name <b>less_than</b> is already defined. If he will be luck=
y he finds the name. But the name can be defined in a module. In this case =
he won&#39;t find the name and define it one more in the updated module or =
in the bset case in a header. However the name can be defined already in so=
me module.</div><div><br></div><div>The problem is that the name<b> less_th=
an</b> is not a standard name and must be defined.. And moreover the call e=
xpression of the algorithm shall be entirely rewritten.:)</div><div><br>=D1=
=81=D1=80=D0=B5=D0=B4=D0=B0, 19 =D1=81=D0=B5=D0=BD=D1=82=D1=8F=D0=B1=D1=80=
=D1=8F 2018 =D0=B3., 16:55:47 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 Barry Revzin =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"lt=
r"><br><br>On Wednesday, September 19, 2018 at 7:32:04 AM UTC-5, Vlad from =
Moscow wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-lef=
t:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Here =
is a simple demonstrative program</div></blockquote><div><br></div><div><br=
></div><div>This is what higher order functions are for. You&#39;re not cha=
nging the <i>algorithm</i>=C2=A0anywhere here, you&#39;re only changing the=
 <i>predicate</i>. What you want is to just make it easier to create those =
predicates. For instance, add:</div><div><br></div><div><div style=3D"backg=
round-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style:sol=
id;border-width:1px;word-wrap:break-word"><code><div><font color=3D"#660066=
"><span style=3D"color:#008">template</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#660">&lt;</span><span style=3D"color:#008">typena=
me</span><span style=3D"color:#000"> T</span><span style=3D"color:#660">&gt=
;</span><span style=3D"color:#000"><br></span><span style=3D"color:#008">au=
to</span><span style=3D"color:#000"> less_than</span><span style=3D"color:#=
660">(</span><span style=3D"color:#000">T </span><span style=3D"color:#008"=
>const</span><span style=3D"color:#660">&amp;</span><span style=3D"color:#0=
00"> v</span><span style=3D"color:#660">)</span><span style=3D"color:#000">=
 </span><span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=
=C2=A0 =C2=A0 </span><span style=3D"color:#008">return</span><span style=3D=
"color:#000"> </span><span style=3D"color:#660">[&amp;</span><span style=3D=
"color:#000">v</span><span style=3D"color:#660">](</span><span style=3D"col=
or:#008">auto</span><span style=3D"color:#000"> </span><span style=3D"color=
:#008">const</span><span style=3D"color:#660">&amp;</span><span style=3D"co=
lor:#000"> x</span><span style=3D"color:#660">)</span><span style=3D"color:=
#000"> </span><span style=3D"color:#660">{</span><span style=3D"color:#000"=
> </span><span style=3D"color:#008">return</span><span style=3D"color:#000"=
> x </span><span style=3D"color:#660">&lt;</span><span style=3D"color:#000"=
> v</span><span style=3D"color:#660">;</span><span style=3D"color:#000"> </=
span><span style=3D"color:#660">};</span><span style=3D"color:#000"><br></s=
pan><span style=3D"color:#660">}</span></font></div></code></div><br>And no=
w instead of writing whole new algorithms for find_less() and any_of_less()=
, you can use the already existing algorithms (which are familiar to everyo=
ne) with a custom, self-documenting predicate:</div><div><br></div><div><di=
v style=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,187);=
border-style:solid;border-width:1px;word-wrap:break-word"><code><div><font =
color=3D"#660066"><span style=3D"color:#008">if</span><span style=3D"color:=
#000"> </span><span style=3D"color:#660">(</span><span style=3D"color:#000"=
>any_of</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">=
v</span><span style=3D"color:#660">),</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#008">end</span><span style=3D"color:#660">(</span=
><span style=3D"color:#000">v</span><span style=3D"color:#660">),</span><sp=
an style=3D"color:#000"> less_than</span><span style=3D"color:#660">(</span=
><span style=3D"color:#000">value</span><span style=3D"color:#660">))</span=
><span style=3D"color:#000"> </span><span style=3D"color:#660">{</span><spa=
n style=3D"color:#000"><br>=C2=A0 std</span><span style=3D"color:#660">::</=
span><span style=3D"color:#000">cout </span><span style=3D"color:#660">&lt;=
&lt;</span><span style=3D"color:#000"> distance</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">v</span><span style=3D"color:#660">=
),</span><span style=3D"color:#000"> find_if</span><span style=3D"color:#66=
0">(</span><span style=3D"color:#008">begin</span><span style=3D"color:#660=
">(</span><span style=3D"color:#000">v</span><span style=3D"color:#660">),<=
/span><span style=3D"color:#000"> </span><span style=3D"color:#008">end</sp=
an><span style=3D"color:#660">(</span><span style=3D"color:#000">v</span><s=
pan style=3D"color:#660">),</span><span style=3D"color:#000"> less_than</sp=
an><span style=3D"color:#660">(</span><span style=3D"color:#000">value</spa=
n><span style=3D"color:#660">)));</span><span style=3D"color:#000"><br></sp=
an><span style=3D"color:#660">}</span></font></div></code></div><br>If we&#=
39;re going to change anything around making this easier, the part I&#39;d =
like to change is to make it easier to write the lambda</div><div><br></div=
><div><div style=3D"background-color:rgb(250,250,250);border-color:rgb(187,=
187,187);border-style:solid;border-width:1px;word-wrap:break-word"><code><d=
iv><font color=3D"#660066"><span style=3D"color:#660">[&amp;</span><span st=
yle=3D"color:#000">value</span><span style=3D"color:#660">](</span><span st=
yle=3D"color:#008">auto</span><span style=3D"color:#000"> </span><span styl=
e=3D"color:#008">const</span><span style=3D"color:#660">&amp;</span><span s=
tyle=3D"color:#000"> x</span><span style=3D"color:#660">){</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#008">return</span><span styl=
e=3D"color:#000"> x </span><span style=3D"color:#660">&lt;</span><span styl=
e=3D"color:#000"> value</span><span style=3D"color:#660">;</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#660">}</span></font></div></=
code></div><br>That&#39;s a lot of characters for something Scala, for inst=
ance, would spell:</div><div><br></div><div><div style=3D"background-color:=
rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;border-wi=
dth:1px;word-wrap:break-word"><code><div><font color=3D"#660066"><span styl=
e=3D"color:#000">_ </span><span style=3D"color:#660">&lt;</span><span style=
=3D"color:#000"> value</span></font></div></code></div><br><br></div></div>=
</blockquote></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; 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/1e72d5be-22e0-4c03-bd58-1ba830a2b907%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/1e72d5be-22e0-4c03-bd58-1ba830a2b907=
%40isocpp.org</a>.<br />

------=_Part_258_1470883809.1537447361272--

------=_Part_257_814616620.1537447361271--

.