• Upgrading C++ library features.

    From Zaphod Beeblebrox@zbeeble@gmail.com to muc.lists.freebsd.stable on Thu Sep 24 12:46:03 2026
    From Newsgroup: muc.lists.freebsd.stable

    --0000000000008333ab065c3d56e6
    Content-Type: text/plain; charset="UTF-8"

    I'm currently running FreeBSD 15.1. I found out that in c++20 you can now
    say:

    for(auto [i, j] : v | std::views:enumerate)

    ... which I would very much like to. FreeBSD 15.1 has clang 19 as
    standard, which supposedly support c++20 and more, but some searching leads
    me to conclude that enumerate is a late addition to clang.

    So I installed clang23 to see. This still kicks out the error --- but I'm expecting this is about include files. Does clang23 come with new include files --- or can I access them. I suppose there is a similar question
    about libc++ ... even though this specific problem doesn't involve the
    library proper, AFAIK.

    Help?

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

    <div dir=3D"ltr"><div>I&#39;m currently running FreeBSD 15.1.=C2=A0 I found=
    out that in c++20 you can now say:</div><div><br></div><div>for(auto [i, j=
    ] : v | std::views:enumerate)</div><div><br></div><div>... which I would ve=
    ry much like to.=C2=A0 FreeBSD 15.1 has clang 19 as standard, which suppose= dly support c++20 and more, but some searching leads me to conclude that en= umerate is a late addition to clang.</div><div><br></div><div>So I installe=
    d clang23 to see.=C2=A0 This still kicks out the error --- but I&#39;m expe= cting this is about include files.=C2=A0 Does clang23 come with new include=
    files --- or can I access them.=C2=A0 I suppose there is a similar questio=
    n about libc++ ... even though this specific problem doesn&#39;t involve th=
    e library proper, AFAIK.</div><div><br></div><div>Help?</div></div>

    --0000000000008333ab065c3d56e6--


    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Zaphod Beeblebrox@zbeeble@gmail.com to muc.lists.freebsd.stable on Thu Sep 24 16:25:54 2026
    From Newsgroup: muc.lists.freebsd.stable

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

    Yes, the complaint is about enumerate not being in the views namespace.
    Same as your error.

    ... So I'm reading that there is no known way to grab a newer set of libc++
    and associated header files. 15.1 is clang 19, it seems. Is 16 planning
    to ship with clang21, or might it ship with clang23?

    On Thu, Sep 24, 2026 at 3:48=E2=80=AFPM Mark Millard <marklmi@yahoo.com> wr= ote:

    On 9/24/26 09:46, Zaphod Beeblebrox wrote:
    I'm currently running FreeBSD 15.1. I found out that in c++20 you can
    now say:

    for(auto [i, j] : v | std::views:enumerate)

    ... which I would very much like to. FreeBSD 15.1 has clang 19 as standard, which supposedly support c++20 and more, but some searching
    leads me to conclude that enumerate is a late addition to clang.

    So I installed clang23 to see. This still kicks out the error --- but
    I'm expecting this is about include files. Does clang23 come with new include files --- or can I access them. I suppose there is a similar question about libc++ ... even though this specific problem doesn't
    involve the library proper, AFAIK.

    Help?

    For the most part, libc++ is include files. Something like std::views:enumerate would be from the libc++ headers.

    The FreeBSD OS supports only its own libc++ header files, no matter
    which LLVM or clang++ compiler version is in use. That includes if one
    uses a devel/llvm* port (or package).

    The LLVM development is not linear in C++ standard versions. There are
    still things missing that are defined in c++17 (so somewhat under a
    decade ago). There are other things from much more recent standard
    versions that are implemented. One has to track status item by item,
    rather than a C++ standard version as a a unit. (Some things have
    "nothing to do" because they were implemented before the standard for whatever the issue was.)

    You do not give the actual error message(s). Some of the notation in:

    for(auto [i, j] : v | std::views:enumerate)

    is not from libc++ and other parts of it are. There is no clue given
    about which parts ended up being referenced as wrong/unsupported by the
    error message(s).

    For:

    #include <iostream>
    #include <vector>
    #include <ranges>
    #include <tuple>

    int main() {
    std::vector<std::tuple<int,uint>> t =3D {};
    std::vector<int> v =3D {};

    for (auto [i, j] : t) {
    std::cout << "Index: " << i << ", Value: " << j << "\n";
    }

    for (auto [i, j] : std::views::enumerate(v)) {
    std::cout << "Index: " << i << ", Value: " << j << "\n";
    }

    for (auto [i, j] : v | std::views::enumerate) {
    std::cout << "Index: " << i << ", Value: " << j << "\n";
    }

    return 0;
    }


    On a main (a.k.a. CURRENT) FreeBSD OS I get:

    # c++ -std=3Dc++23 c23_structured_binding_example.cc c23_structured_binding_example.cc:14:36: error: no member named
    'enumerate' in namespace 'std::ranges::views'
    14 | for (auto [i, j] : std::views::enumerate(v)) {
    | ^~~~~~~~~ c23_structured_binding_example.cc:18:40: error: no member named
    'enumerate' in namespace 'std::ranges::views'
    18 | for (auto [i, j] : v | std::views::enumerate) {
    | ^~~~~~~~~
    2 errors generated.

    # c++ -std=3Dc++23 -fexperimental-library \
    c23_structured_binding_example.cc
    c23_structured_binding_example.cc:14:36: error: no member named
    'enumerate' in namespace 'std::ranges::views'
    14 | for (auto [i, j] : std::views::enumerate(v)) {
    | ^~~~~~~~~ c23_structured_binding_example.cc:18:40: error: no member named
    'enumerate' in namespace 'std::ranges::views'
    18 | for (auto [i, j] : v | std::views::enumerate) {
    | ^~~~~~~~~
    2 errors generated.


    Those are complaints about something missing in the libc++ headers. Note
    that the first "for(. . .)" got no complaints at all. Nor were there any complaints about std::views of itself.


    For Reference:

    # c++ -v
    FreeBSD clang version 21.1.8 (https://github.com/llvm/llvm-project.git llvmorg-21.1.8-0-g2078da43e25a <https://github.com/llvm/llvm-project.gitllvmorg-21.1.8-0-g2078da43e25a>) Target: aarch64-unknown-freebsd16.0
    Thread model: posix
    InstalledDir: /usr/bin

    https://libcxx.llvm.org/Status/Cxx23.html#cxx23-status reports:

    P2164R9 views::enumerate 2023-02 (Issaquah) Complete 23 #105251

    That 23 is for LLVM23 and its libc++23 being the "First released
    version". Some things are incompletely implemented well before they are
    fully implemented/released. -fexperimental-library sometimes allows use
    of some incompletely implemented status items.

    Until the FreeBSD OS version of interest is based o LLVM23 and its
    libc++23 (or later versions of such), std::views::enumerate will not be operational as far as I can tell.


    --
    =3D=3D=3D
    Mark Millard
    marklmi at yahoo.com


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

    <div dir=3D"ltr"><div>Yes, the complaint is about enumerate not being in th=
    e views namespace.=C2=A0 Same as your error.</div><div><br></div><div>... S=
    o I&#39;m reading that there is no known way to grab a newer set of libc++ = and associated header files.=C2=A0 15.1 is clang 19, it seems.=C2=A0 Is 16 = planning to ship with clang21, or might it ship with clang23?</div></div><b= r><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class= =3D"gmail_attr">On Thu, Sep 24, 2026 at 3:48=E2=80=AFPM Mark Millard &lt;<a=
    href=3D"mailto:marklmi@yahoo.com">marklmi@yahoo.com</a>&gt; wrote:<br></di= v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde= r-left:1px solid rgb(204,204,204);padding-left:1ex">On 9/24/26 09:46, Zapho=
    d Beeblebrox wrote:<br>
    &gt; I&#39;m currently running FreeBSD 15.1.=C2=A0 I found out that in c++2=
    0 you can<br>
    &gt; now say:<br>
    &gt; <br>
    &gt; for(auto [i, j] : v | std::views:enumerate)<br>
    &gt; <br>
    &gt; ... which I would very much like to.=C2=A0 FreeBSD 15.1 has clang 19 a= s<br>
    &gt; standard, which supposedly support c++20 and more, but some searching<=

    &gt; leads me to conclude that enumerate is a late addition to clang.<br>
    &gt; <br>
    &gt; So I installed clang23 to see.=C2=A0 This still kicks out the error --=
    - but<br>
    &gt; I&#39;m expecting this is about include files.=C2=A0 Does clang23 come=
    with new<br>
    &gt; include files --- or can I access them.=C2=A0 I suppose there is a sim= ilar<br>
    &gt; question about libc++ ... even though this specific problem doesn&#39;= t<br>
    &gt; involve the library proper, AFAIK.<br>
    &gt; <br>
    &gt; Help?<br>

    For the most part, libc++ is include files. Something like<br> std::views:enumerate would be from the libc++ headers.<br>

    The FreeBSD OS supports only its own libc++ header files, no matter<br>
    which LLVM or clang++ compiler version is in use. That includes if one<br>
    uses a devel/llvm* port (or package).<br>

    The LLVM development is not linear in C++ standard versions. There are<br> still things missing that are defined in c++17 (so somewhat under a<br>
    decade ago). There are other things from much more recent standard<br>
    versions that are implemented. One has to track status item by item,<br>
    rather than a C++ standard version as a a unit. (Some things have<br> &quot;nothing to do&quot; because they were implemented before the standard=
    for<br>
    whatever the issue was.)<br>

    You do not give the actual error message(s). Some of the notation in:<br>

    for(auto [i, j] : v | std::views:enumerate)<br>

    is not from libc++ and other parts of it are. There is no clue given<br>
    about which parts ended up being referenced as wrong/unsupported by the<br> error message(s).<br>

    For:<br>

    #include &lt;iostream&gt;<br>
    #include &lt;vector&gt;<br>
    #include &lt;ranges&gt;<br>
    #include &lt;tuple&gt;<br>

    int main() {<br>
    =C2=A0 =C2=A0 std::vector&lt;std::tuple&lt;int,uint&gt;&gt; t =3D {};<br> =C2=A0 =C2=A0 std::vector&lt;int&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
    =A0 =C2=A0v =3D {};<br>

    =C2=A0 =C2=A0 for (auto [i, j] : t) {<br>
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 std::cout &lt;&lt; &quot;Index: &quot; &lt;&lt;=
    i &lt;&lt; &quot;, Value: &quot; &lt;&lt; j &lt;&lt; &quot;\n&quot;;<br> =C2=A0 =C2=A0 }<br>

    =C2=A0 =C2=A0 for (auto [i, j] : std::views::enumerate(v)) {<br>
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 std::cout &lt;&lt; &quot;Index: &quot; &lt;&lt;=
    i &lt;&lt; &quot;, Value: &quot; &lt;&lt; j &lt;&lt; &quot;\n&quot;;<br> =C2=A0 =C2=A0 }<br>

    =C2=A0 =C2=A0 for (auto [i, j] : v | std::views::enumerate) {<br>
    =C2=A0 =C2=A0 =C2=A0 =C2=A0 std::cout &lt;&lt; &quot;Index: &quot; &lt;&lt;=
    i &lt;&lt; &quot;, Value: &quot; &lt;&lt; j &lt;&lt; &quot;\n&quot;;<br> =C2=A0 =C2=A0 }<br>

    =C2=A0 =C2=A0 return 0;<br>
    }<br>


    On a main (a.k.a. CURRENT) FreeBSD OS I get:<br>

    # c++ -std=3Dc++23 c23_structured_binding_example.cc<br> c23_structured_binding_example.cc:14:36: error: no member named<br> &#39;enumerate&#39; in namespace &#39;std::ranges::views&#39;<br>
    =C2=A0 =C2=A014 |=C2=A0 =C2=A0 =C2=A0for (auto [i, j] : std::views::enumera= te(v)) {<br>
    =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
    =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^= ~~~~~~~~<br>
    c23_structured_binding_example.cc:18:40: error: no member named<br> &#39;enumerate&#39; in namespace &#39;std::ranges::views&#39;<br>
    =C2=A0 =C2=A018 |=C2=A0 =C2=A0 =C2=A0for (auto [i, j] : v | std::views::enu= merate) {<br>
    =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
    =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 ^~~~~~~~~<br>
    2 errors generated.<br>

    # c++ -std=3Dc++23 -fexperimental-library \<br> c23_structured_binding_example.cc<br>
    c23_structured_binding_example.cc:14:36: error: no member named<br> &#39;enumerate&#39; in namespace &#39;std::ranges::views&#39;<br>
    =C2=A0 =C2=A014 |=C2=A0 =C2=A0 =C2=A0for (auto [i, j] : std::views::enumera= te(v)) {<br>
    =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
    =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^= ~~~~~~~~<br>
    c23_structured_binding_example.cc:18:40: error: no member named<br> &#39;enumerate&#39; in namespace &#39;std::ranges::views&#39;<br>
    =C2=A0 =C2=A018 |=C2=A0 =C2=A0 =C2=A0for (auto [i, j] : v | std::views::enu= merate) {<br>
    =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
    =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 ^~~~~~~~~<br>
    2 errors generated.<br>


    Those are complaints about something missing in the libc++ headers. Note<br=

    that the first &quot;for(. . .)&quot; got no complaints at all. Nor were th= ere any<br>
    complaints about std::views of itself.<br>


    For Reference:<br>

    # c++ -v<br>
    FreeBSD clang version 21.1.8 (<a href=3D"https://github.com/llvm/llvm-proje= ct.gitllvmorg-21.1.8-0-g2078da43e25a" rel=3D"noreferrer" target=3D"_blank">= https://github.com/llvm/llvm-project.git<br> llvmorg-21.1.8-0-g2078da43e25a</a>)<br>
    Target: aarch64-unknown-freebsd16.0<br>
    Thread model: posix<br>
    InstalledDir: /usr/bin<br>

    <a href=3D"https://libcxx.llvm.org/Status/Cxx23.html#cxx23-status" rel=3D"n= oreferrer" target=3D"_blank">https://libcxx.llvm.org/Status/Cxx23.html#cxx2= 3-status</a> reports:<br>

    P2164R9 views::enumerate 2023-02 (Issaquah) Complete 23 #105251<br>

    That 23 is for LLVM23 and its libc++23 being the &quot;First released<br> version&quot;. Some things are incompletely implemented well before they ar= e<br>
    fully implemented/released. -fexperimental-library sometimes allows use<br>
    of some incompletely implemented status items.<br>

    Until the FreeBSD OS version of interest is based o LLVM23 and its<br>
    libc++23 (or later versions of such), std::views::enumerate will not be<br> operational as far as I can tell.<br>


    -- <br>
    =3D=3D=3D<br>
    Mark Millard<br>
    marklmi at <a href=3D"http://yahoo.com" rel=3D"noreferrer" target=3D"_blank= ">yahoo.com</a><br>
    </blockquote></div>

    --000000000000c4a9db065c4068c4--


    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Dimitry Andric@dim@FreeBSD.org to muc.lists.freebsd.stable on Fri Sep 25 09:16:42 2026
    From Newsgroup: muc.lists.freebsd.stable

    On 25 Sep 2026, at 00:22, Mark Millard <marklmi@yahoo.com> wrote:

    On 9/24/26 13:25, Zaphod Beeblebrox wrote:
    Yes, the complaint is about enumerate not being in the views namespace.
    Same as your error.

    ... So I'm reading that there is no known way to grab a newer set of
    libc++ and associated header files. 15.1 is clang 19, it seems. Is 16
    planning to ship with clang21, or might it ship with clang23?

    Unclear at this time.

    https://www.freebsd.org/releng/ reports the estimate:

    December 2027 FreeBSD 16.0
    At the moment 16-CURRENT, 15-STABLE and 14-STABLE have clang and libc++ 21.1.8. I merged 21.1.8 into 16-CURRENT on 2026-04-25, and then MFC'd it to 15-STABLE and 14-STABLE on 2026-05-30.
    We are now in a bit of a strange situation, that the just-released 14.5-RELEASE has clang/libc++ 21.1.8, while the somewhat older 15.1-RELEASE still has 19.1.7.
    That said, libc++ 21.1.8 still doesn't have std::views::enumerate, unfortunately, so we will have to upgrade the base system to clang and libc++ 23.1 at some point.
    As stands, the ports tree has an in process:

    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296377
    "[exp-run] update LLVM_DEFAULT to 22"
    It is unrelated, the ports tree has lots of different LLVM versions, but these do not install their own copies of libc++. This is different from the various gcc ports, which each have their (possibly incompatible) versions of libstdc++.
    The above bug is only about bumping the default version if the user doesn't specify any specific pinned version.
    -Dimitry
    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Konstantin Belousov@kib@freebsd.org to muc.lists.freebsd.stable on Fri Sep 25 13:02:20 2026
    From Newsgroup: muc.lists.freebsd.stable

    On Fri, Sep 25, 2026 at 09:16:42AM +0200, Dimitry Andric wrote:
    On 25 Sep 2026, at 00:22, Mark Millard <marklmi@yahoo.com> wrote:

    On 9/24/26 13:25, Zaphod Beeblebrox wrote:
    Yes, the complaint is about enumerate not being in the views namespace. >> Same as your error.

    ... So I'm reading that there is no known way to grab a newer set of
    libc++ and associated header files. 15.1 is clang 19, it seems. Is 16
    planning to ship with clang21, or might it ship with clang23?

    Unclear at this time.

    https://www.freebsd.org/releng/ reports the estimate:

    December 2027 FreeBSD 16.0

    At the moment 16-CURRENT, 15-STABLE and 14-STABLE have clang and libc++ 21.1.8.

    I merged 21.1.8 into 16-CURRENT on 2026-04-25, and then MFC'd it to 15-STABLE and 14-STABLE on 2026-05-30.

    We are now in a bit of a strange situation, that the just-released 14.5-RELEASE has clang/libc++ 21.1.8, while the somewhat older 15.1-RELEASE still has 19.1.7.

    That said, libc++ 21.1.8 still doesn't have std::views::enumerate, unfortunately, so we will have to upgrade the base system to clang and libc++ 23.1 at some point.


    As stands, the ports tree has an in process:

    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296377
    "[exp-run] update LLVM_DEFAULT to 22"

    It is unrelated, the ports tree has lots of different LLVM versions, but these do not install their own copies of libc++. This is different from the various gcc ports, which each have their (possibly incompatible) versions of libstdc++.

    The above bug is only about bumping the default version if the user doesn't specify any specific pinned version.


    There is PR294367 - devel/llvm22: add an option to build and
    install bundled libcxx where I asked to provide an option for llvm ports
    to install the bundled libc++.

    I still think that this is a quite useful improvement.


    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Thierry Thomas@thierry@freebsd.org to muc.lists.freebsd.stable on Fri Sep 25 12:10:45 2026
    From Newsgroup: muc.lists.freebsd.stable

    --1uAb5rJgtXkpBlT/
    Content-Type: text/plain; charset=iso-8859-1
    Content-Disposition: inline
    Content-Transfer-Encoding: quoted-printable

    Le ven. 25 sept. 26 =E0 9:16:42 +0200, Dimitry Andric <dim@FreeBSD.org>
    =E9crivait=A0:

    That said, libc++ 21.1.8 still doesn't have std::views::enumerate, unfortunately, so we will have to upgrade the base system to clang and
    libc++ 23.1 at some point.

    BTW, do you know if std::ellint_1 / std::ellint_2 will be supported?
    ATM we have to use the boost::math ones.

    Regards,
    --=20
    Th. Thomas.

    --1uAb5rJgtXkpBlT/
    Content-Type: application/pgp-signature; name=signature.asc

    -----BEGIN PGP SIGNATURE-----

    iQJPBAEBCAA5FiEE5Ta+hThTmdALb6p28cUWs8g1l1MFAmq2SJkbFIAAAAAABAAO bWFudTIsMi41KzEuMTIsMiwzAAoJEPHFFrPINZdTV+QP/igB6oEPV/6isRzYQvyR Osh/mk08H9hK+JywJ9ODaKKs3KZ1Nojm9WjEdRSPGyJMkIL41Evc5LIjT8zhi5fr jJtFdSycGgDaD/Iju6F0huu5nTiS41Cu21GN3WPBehse6mpG6WDm+IEsALXRHtxC 1C9v+yE3xDThDTfUoXI4wjtHuYEuWI2OXmBtlc9MaSBvqjbyosAqrz7tdi3Vu2Iy dZ67DlUjrmmZaajP2sch/bj8CkH28tLc0DQLRnJL+eZ6kBehvwlFuPZuvKBo4ZOw nNzEXMr6jBOmjCu3hBNuoiSbwgefp3Gdqj9KUDMEWRFpdXxmgCD+TbhMhIXUKR+b zL2Ff3mhzSU8IbSdX73TEh3MxvYOWeBsD0pGrzwe24RIevrE2qBgbE2VsJuMqSO9 jOBUnUjjzn2PkI4lmeekqLkmt2BbCI+F4N1/WbXMylYcJLiq6gVQ4TX7V+f6Wk2c bJWaO8H7UbPFQKPWoDdlwxZA0Swx9RzLmDM6K47yKs9IzzpeQvt3eNMLbYtDntk7 OgV0uAAHJ7eUQeQBtSELUQ6sbUmqkYoPsrEmQsz0loboPaaxlNPu3Gqd7kicpNQ1 a/qv+fNMgRokE7V/uJ839uaFs5yTtQlQC1WLPSWqC8jNGWe/LUjG7ZzM15d3+LkV /dkqpVY1xp3iNSNCDYv5ZGeW
    =IFCd
    -----END PGP SIGNATURE-----

    --1uAb5rJgtXkpBlT/--


    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Zaphod Beeblebrox@zbeeble@gmail.com to muc.lists.freebsd.stable on Fri Sep 25 15:11:00 2026
    From Newsgroup: muc.lists.freebsd.stable

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

    On Fri, Sep 25, 2026 at 6:11=E2=80=AFAM Thierry Thomas <thierry@freebsd.org=
    wrote:

    Le ven. 25 sept. 26 =C3=A0 9:16:42 +0200, Dimitry Andric <dim@FreeBSD.or=

    =C3=A9crivait :

    That said, libc++ 21.1.8 still doesn't have std::views::enumerate, unfortunately, so we will have to upgrade the base system to clang and libc++ 23.1 at some point.


    I ended up using a transform with a lambda ... which metaphorically felt
    like murdering a bug with an ACME extending fist, but ... hey ... compiler optimization, right?

    I would definitely use the ability to install an upgraded libc++ and/or associated include files. If we do this, a short document on using it
    would be cool.

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

    <div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote g= mail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Sep 25,=
    2026 at 6:11=E2=80=AFAM Thierry Thomas &lt;<a href=3D"mailto:thierry@freeb= sd.org">thierry@freebsd.org</a>&gt; wrote:<br></div><blockquote class=3D"gm= ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,= 204,204);padding-left:1ex">Le ven. 25 sept. 26 =C3=A0=C2=A0 9:16:42 +0200, = Dimitry Andric &lt;dim@FreeBSD.org&gt;<br>
    =C2=A0=C3=A9crivait=C2=A0:<br>

    &gt; That said, libc++ 21.1.8 still doesn&#39;t have std::views::enumerate,=

    &gt; unfortunately, so we will have to upgrade the base system to clang and=

    &gt; libc++ 23.1 at some point.</blockquote><div><br></div><div>I ended up = using a transform with a lambda ... which metaphorically felt like murderin=
    g a bug with an ACME extending fist, but ... hey ... compiler optimization,=
    right?</div><div><br></div><div>I would definitely=C2=A0use the ability to=
    install an upgraded libc++ and/or associated include files.=C2=A0 If we do=
    this, a short document on using it would be cool.</div><div><br></div></di= v></div>

    --000000000000d4b390065c537a1c--


    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2