Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions source/containers.tex
Original file line number Diff line number Diff line change
Expand Up @@ -10735,7 +10735,7 @@
parse(ParseContext& ctx);

template<class FormatContext>
typename FormatContext::iterator
constexpr typename FormatContext::iterator
format(const T& ref, FormatContext& ctx) const;
};
}
Expand All @@ -10756,7 +10756,7 @@
\indexlibrarymember{format}{formatter}%
\begin{itemdecl}
template<class FormatContext>
typename FormatContext::iterator
constexpr typename FormatContext::iterator
format(const T& ref, FormatContext& ctx) const;
\end{itemdecl}

Expand Down Expand Up @@ -20308,7 +20308,7 @@
\tcode{queue},
\tcode{priority_queue}, and
\tcode{stack},
the library provides the following formatter specialization
the library provides the following constexpr-enabled formatter specialization
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"constexpr-enabled" does not imply "enabled" according to [format.formatter.spec], so this is a normative change.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's just a missing edit from the application of P3391, and similarly for the next change below.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So yes, it is a normative change, but one that was approved at plenary.

Copy link
Member

@jensmaurer jensmaurer Mar 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, you're saying this is a missed edit from the application of P3391R2, beyond a few sprinkled "constexpr" annotations ? That would be good to say in the commit comment.

But that causes an LWG issue, because "constexpr-enabled" doesn't imply "enabled", I think.

Copy link
Member

@jwakely jwakely Mar 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have:

If the library provides an explicit or partial specialization of formatter<T, charT>, that specialization is enabled and meets the Formatter requirements except as noted otherwise.

So I think these specializations are enabled just by virtue of being present in the library spec. We don't also need to say they're enabled

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok.

where \tcode{\placeholder{adaptor-type}} is the name of the template:

\indexlibraryglobal{formatter}%
Expand All @@ -20330,7 +20330,7 @@
parse(ParseContext& ctx);

template<class FormatContext>
typename FormatContext::iterator
constexpr typename FormatContext::iterator
format(@\exposid{maybe-const-adaptor}@& r, FormatContext& ctx) const;
};
}
Expand All @@ -20352,7 +20352,7 @@
\indexlibrarymember{format}{formatter}%
\begin{itemdecl}
template<class FormatContext>
typename FormatContext::iterator
constexpr typename FormatContext::iterator
format(@\exposid{maybe-const-adaptor}@& r, FormatContext& ctx) const;
\end{itemdecl}

Expand Down