Date: Sat, 4 Apr 2026 21:48:26 -0500
> was it considered to decouple symbol mangling from the language
Mangling is decoupled from the language, in that the standard doesn't
say how mangling should be done and the term "mangle" does not appear
in the standard.
> For example, in this case optional<X> would still be mangled as before while optional<X, Y>
This can be achieved by adding a class template for the two-parameter
version and leaving the existing one unchanged
On Sat, Apr 4, 2026 at 6:28 AM Andrey Semashev via Std-Proposals
<std-proposals_at_[hidden]> wrote:
>
> On April 4, 2026 1:56:39 PM Jonathan Wakely via Std-Proposals
> <std-proposals_at_[hidden]> wrote:
>
> > I only read the abstract, but how does changing the optional class template
> > from one template parameter to two template parameters provide complete
> > backwards compatibility? It means optional<X> has a different mangled name,
> > and so it's an ABI break.
>
> Unrelated to the proposal, but was it considered to decouple symbol
> mangling from the language? For example, in this case optional<X> would
> still be mangled as before while optional<X, Y> (for non-default Y) would
> be mangled differently. This could be achieved with a vendor-specific
> attribute. In terms of standardization, this would allow more extensions to
> existing standard types.
>
>
>
>
> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
Mangling is decoupled from the language, in that the standard doesn't
say how mangling should be done and the term "mangle" does not appear
in the standard.
> For example, in this case optional<X> would still be mangled as before while optional<X, Y>
This can be achieved by adding a class template for the two-parameter
version and leaving the existing one unchanged
On Sat, Apr 4, 2026 at 6:28 AM Andrey Semashev via Std-Proposals
<std-proposals_at_[hidden]> wrote:
>
> On April 4, 2026 1:56:39 PM Jonathan Wakely via Std-Proposals
> <std-proposals_at_[hidden]> wrote:
>
> > I only read the abstract, but how does changing the optional class template
> > from one template parameter to two template parameters provide complete
> > backwards compatibility? It means optional<X> has a different mangled name,
> > and so it's an ABI break.
>
> Unrelated to the proposal, but was it considered to decouple symbol
> mangling from the language? For example, in this case optional<X> would
> still be mangled as before while optional<X, Y> (for non-default Y) would
> be mangled differently. This could be achieved with a vendor-specific
> attribute. In terms of standardization, this would allow more extensions to
> existing standard types.
>
>
>
>
> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
Received on 2026-04-05 02:48:39
