Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Jul 2022 18:30:39 +0000
From:      bugzilla-noreply@freebsd.org
To:        standards@FreeBSD.org
Subject:   [Bug 255374] C++20 features (headers) std::concepts, std::format, std::numbers, std::source_location, etc. are missing
Message-ID:  <bug-255374-99-1zGHfDuEzn@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-255374-99@https.bugs.freebsd.org/bugzilla/>
References:  <bug-255374-99@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D255374

--- Comment #15 from Dimitry Andric <dim@FreeBSD.org> ---
(In reply to Yuri Victorovich from comment #14)
> Does LLVM maintain a list of missing C++ features?

For libc++, there are these lists (from
https://libcxx.llvm.org//index.html#c-dialect-support):

* https://libcxx.llvm.org/Status/Cxx14.html (complete)
* https://libcxx.llvm.org//Status/Cxx17.html (in progress)
* https://libcxx.llvm.org//Status/Cxx20.html (in progress)
* https://libcxx.llvm.org//Status/Cxx2b.html (in progress)

Typically, libc++ requires the same llvm/clang version to build, but you can
often get away with a one or two year old version.


> Are all available features merged into the FreeBSD repository?

I attempt to merge clang/libc++ (actually llvm-project) release versions af=
ter
they have been tested with an exp-run. While I don't merge *everything* und=
er
llvm-project, I always include complete copies of clang and libc++.


> What about std::format and std::vformat?

libc++ 13.0 started with some incomplete support, which had to be turned on=
 via
LIBCXX_ENABLE_INCOMPLETE_FEATURES, but we didn't use it. libc++ 14.0 has so=
me
improvements, but it is not finished:

"There=E2=80=99s support for the C++20 header <format>. Some parts are stil=
l missing,
most notably the compile-time format string validation. Some functions are
known to be inefficient, both in memory usage and performance. The
implementation isn=E2=80=99t API- or ABI-stable and therefore considered ex=
perimental.
(Some not-yet-implemented papers require an API-break.) As a result, it is
disabled by default, however vendors can enable the header by using
-DLIBCXX_ENABLE_INCOMPLETE_FEATURES=3DON when configuring their build."

I'm unsure if there are any promises to have these features completely fini=
shed
for libc++ 15.0.

--=20
You are receiving this mail because:
You are on the CC list for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-255374-99-1zGHfDuEzn>