Re: What's the newest C++ standard that we can target?

From: Warner Losh <imp_at_bsdimp.com>
Date: Wed, 08 Jan 2025 18:10:54 UTC
On Wed, Jan 8, 2025, 10:47 AM Alan Somers <asomers@freebsd.org> wrote:

> On Wed, Jan 8, 2025 at 10:44 AM Dimitry Andric <dim@freebsd.org> wrote:
> >
> > On 8 Jan 2025, at 18:31, Alan Somers <asomers@freebsd.org> wrote:
> > >
> > > What is the newest C++ standard that we can target in src, and be
> > > confident that it will compile on all targets?  Can we use C++20?
> >
> > C++17 is probably the safest one, as C++20 support in libc++ 19 is
> > mostly done, but not entirely complete:
> >
> > https://libcxx.llvm.org/Status/Cxx20.html
> >
> > As long as you avoid modules, and the more exotic parts, you should be
> > fine. One glaring remaining issue is that std::jthread support is still
> > gated under -fexperimental-library, at least until libc++ 20 comes out.
> >
> > That said, older existing releases don't have libc++ 19 yet, and they
> > are missing a few headers too. So it depends on whether you want to
> > target -CURRENT only?
> >
> > -Dimitry
>
> I guess I should've mentioned that I would like to MFC to stable/14,
> too.  I certainly intend to avoid exotic parts.  Is there any better
> way to ensure that may code will build other than "make universe"?
>

No.

But I keep a stable/13 and stable/14 trees around that I build on amd64 and
armv7 for all changes unless I'm worried. It's faster. Another way is to
have jails for these environments for incremental development or quick
experiments. Poudriere is a good way to build those jails quickly.

Warner