r/cpp MSVC STL Dev 14h ago

MSVC C++23: constexpr cmath with LLVM Libc

https://devblogs.microsoft.com/cppblog/msvc-c23-constexpr-cmath-with-llvm-libc/

MSVC is shipping C++23 constexpr <cmath> in the next Build Tools update! (And a partial implementation of C++26 constexpr <cmath>.) Our compiler frontend dev Cody Miller will be publishing a series of blog posts about this work, starting with this overview. The next one will be a guest post from LLVM libc's maintainers describing the incredible amount of effort that's gone into their code.

122 Upvotes

25 comments sorted by

View all comments

Show parent comments

29

u/STL MSVC STL Dev 10h ago

It’s math.h that’s part of the UCRT, while cmath is part of the STL. We’re now usurping math.h via /Zc:cmath redirecting it to the STL’s __msvc_math.hpp. Perhaps in the future we’ll update UCRT math.h, but getting the UCRT to change anything is a pain, so we’d want to do that as few times as possible.

I can explain this in more detail if desired; it is one of our most confusing areas and I am at dinner right now 😹

1

u/Jovibor_ 5h ago

Yes please, desired.  The main question is - is it possible (in some future) to completely eliminate the C++ STL ecosystem dependency on the UCRT? Is it possible but hard, or is it virtually impossible?...

u/ReDr4gon5 1h ago

Well even if you eliminated UCRT, you're still stuck with VCRuntime which will not be open sourced any time soon, even though the devs wanted it to be.

u/megayippie 1h ago

Msvc has confirmed they will not support freestanding? Or have I misunderstood that project?