Thread overview
[Issue 18845] Extern(C++) class with no virtual functions
May 09, 2018
Manu
May 09, 2018
Ethan Watson
May 09, 2018
Manu
Jan 17, 2019
Mathias LANG
Jun 14, 2019
Mathias LANG
Dec 17, 2022
Iain Buclaw
May 09, 2018
https://issues.dlang.org/show_bug.cgi?id=18845

Manu <turkeyman@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |C++

--
May 09, 2018
https://issues.dlang.org/show_bug.cgi?id=18845

Ethan Watson <gooberman@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gooberman@gmail.com

--- Comment #1 from Ethan Watson <gooberman@gmail.com> ---
See: The giant workaround I had to do for Binderoo for this very thing in my DConf 2017 talk.

I believe the reason classes always have a vtable is so safe casting is still guaranteed. But that's just an assumption.

--
May 09, 2018
https://issues.dlang.org/show_bug.cgi?id=18845

--- Comment #2 from Manu <turkeyman@gmail.com> ---
What does "safe casting" mean?
You mean that it might require pointer adjustment?

I mean, it's absolutely necessary that when casting extern(C++) classes, that
some special logic is applied which may need to perform a pointer adjustment,
just like when casting C++ classes in C++ ;)
We can't escape that. We either need to support it, or it's just broken.

At very least, we should emit an error when an extern(C++) class is declared with no virtual members saying it's not supported.

--
January 17, 2019
https://issues.dlang.org/show_bug.cgi?id=18845

Mathias LANG <pro.mathias.lang@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pro.mathias.lang@gmail.com

--
June 14, 2019
https://issues.dlang.org/show_bug.cgi?id=18845

Mathias LANG <pro.mathias.lang@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |timothee.cour2@gmail.com

--- Comment #3 from Mathias LANG <pro.mathias.lang@gmail.com> ---
*** Issue 18449 has been marked as a duplicate of this issue. ***

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=18845

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P4

--