C++ Logo

std-proposals

Advanced search

Re: [std-proposals] Standard support for different ABI's for class vtables

From: Jason McKesson <jmckesson_at_[hidden]>
Date: Mon, 2 Jun 2025 19:54:02 -0400
On Mon, Jun 2, 2025 at 7:24 PM Frederick Virchanza Gotham via
Std-Proposals <std-proposals_at_[hidden]> wrote:
>
> On Mon, Jun 2, 2025 at 6:29 PM Oliver Hunt wrote:
> >
> > It could be 6 nines, but if your position is “I don’t like the ABI used for
> > C++ polymorphism on windows and therefore it should be ignored” is
> > DoA, as you’re arguing with reality.
>
>
> What I'm saying is that Microsoft's implementation of polymorphism is
> the worst of all the C++ compilers, and that the C++ standardisation
> process is burdened by this. If you were to take Microsoft out of the
> picture, more would be possible when you have a pointer to a
> type-erased polymorphic object. (I've already pointed out two things
> that would become possible).

Are these things people actually need? Do they actually make sense for
the language to support? Because all of your talk about
implementability ignores both of those questions.

Why is dynamic casting from an explicitly untyped pointer a good thing
to have in the language? Not merely that you want it, but that it
would be legitimately useful to a large number of C++ programmers. You
keep talking about how Microsoft's ABI is "burdening" the standard,
but all of the things you talk about doing with that functionality
don't seem like particularly great features that C++ programmers
*need* in order to write more effective programs.

Because I feel like this is an incredibly niche feature of dubious
utility whose problems could likely be solved by... not using a
`void*` (or by casting to a known base class, then doing the dynamic
cast).

Received on 2025-06-02 23:54:15