Thread overview
[Issue 15587] Enable use of D keywords as identifiers when interfacing to C/C++
Jan 20, 2016
Walter Bright
Jan 22, 2016
Sobirari Muhomori
Jul 08, 2017
Vladimir Panteleev
Feb 19, 2020
Mathias LANG
Dec 17, 2022
Iain Buclaw
January 20, 2016
https://issues.dlang.org/show_bug.cgi?id=15587

Walter Bright <bugzilla@digitalmars.com> changed:

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

--
January 22, 2016
https://issues.dlang.org/show_bug.cgi?id=15587

--- Comment #1 from Sobirari Muhomori <dfj1esp02@sneakemail.com> ---
Another option:
extern (C++) int __symbol__with();
And let C++ mangler recognize and remove the __symbol__ prefix.

Choose your naming convention:
alias with_ = __symbol__with;
alias _with = __symbol__with;
alias _with_ = __symbol__with;
alias With = __symbol__with;

--
July 08, 2017
https://issues.dlang.org/show_bug.cgi?id=15587

--- Comment #2 from Vladimir Panteleev <dlang-bugzilla@thecybershadow.net> ---
In this particular case, the easiest workaround is to use pragma(mangle),
right?

I understand that this is more useful for C++ functions, whose mangling is non-trivial.

--
February 19, 2020
https://issues.dlang.org/show_bug.cgi?id=15587

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

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

--- Comment #3 from Mathias LANG <pro.mathias.lang@gmail.com> ---
For C `pragma(mangle)` is an easy workaround, however for `extern(C++)`, not
only is the mangling non-trivial, but it's currently impossible to do for
anything templated, since the mangling depend on template parameters which are
not available to `pragma(mangle)`.

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

Iain Buclaw <ibuclaw@gdcproject.org> changed:

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

--