Here are the standard library features that will soon be usable at compile time. One topic is missing: exceptions. As they need both core language and library changes, I thought they deserved their own post.
C++26: More constexpr in the Standard Library
by Sandor Dargo
From the article:
P2562R1:
constexpr
stable sortingThis paper proposes making
std::stable_sort
,std::stable_partition
,std::inplace_merge
, and theirranges
counterparts usable in constant expressions. While many algorithms have becomeconstexpr
over the years, this family related to stable sorting had remained exceptions — until now.The recent introduction of
constexpr
containers gives extra motivation for this proposal. If you can construct a container at compile time, it’s only natural to want to sort it there, too. More importantly, aconstexpr std::vector
can now support efficient, stable sorting algorithms.A key question is whether the algorithm can meet its computational complexity requirements under the constraints of constant evaluation. Fortunately,
std::is_constant_evaluated()
provides an escape hatch for implementations. For deeper details, check out the proposal itself.
Add a Comment
Comments are closed.