On Nov 21, 2025, at 10:06 AM, Peter Dimov via Boost <boost@lists.boost.org> wrote:
Marshall Clow wrote:
Hi,
The master branch is now open for bug fixes, test and documentation changes, but please follow the policy described in:
https://github.com/boostorg/wiki/wiki/Releases%3A-Beta-Merge-Policy
I'd like to merge the following changes to Compat:
https://github.com/boostorg/compat/compare/master...develop
This undoes the addition of the public header boost/compat/nontype.hpp for this release. We'll add constant_arg.hpp (or whatever) later.
Some more context about this:
In 1.89, boost::compat::nontype_t was defined in boost/compat/function_ref.hpp, because it's part of its public API (some function_ref constructors take nontype_t<f>.) It was left largely undocumented.
In 1.90 beta, I had moved it to a public header, boost/compat/nontype.hpp, with proper documentation. However, the committee changed its mind at the Kona meeting, which happened after our beta, and decided that nontype_t would be better named constant_arg_t.
I'm not 100% sure that this is the final name of the component; it seems so, but there are opinions that another new standard component, std::cw, the new replacement of std::integral_constant, ought to be used instead in std::function_ref's interface. Plus, doing substantial changes to a public API, be it a new one, between beta and release doesn't sound good.
So, instead, what I propose to do, and the commits above implement, is that the new public header is "unpublished" for 1.90 - moved to detail/ and removed from the documentation. From the outside, this leaves us exactly where we were in 1.89 - nontype_t is still defined by function_ref.hpp, and is still underdocumented.
Once 1.90 ships, I'll rename the header to constant_arg.hpp and re-publish it.
I’m fine with that. — Marshall