On Monday, 6 August 2018 at 20:35:37 UTC, Walter Bright wrote:
On 8/6/2018 11:26 AM, tide wrote:
What's your crossplatform workaround if I have a namespace
named "version" or "package" ?
See my reply to Rick Cattermole.
https://digitalmars.com/d/archives/digitalmars/D/Is_there_any_good_reason_why_C_namespaces_are_closed_in_D_317277.html#N317507
But that's not currently implemented is it? Your proposed
solution adds an exception to the rule that just increases
complexity of the language. No where else does "__" remove itself
from the name it is used with. With the syntax extern(C++, "...")
it is more easily understood, no crazy exceptions need to be made.
You also didn't mention your reasoning behind not including a
way to use const pointers to mutable data.
That's a longstanding issue and has nothing to do with
namespaces.
That's just a deflection, we are talking about C++ name mangling,
not namespaces. How do you mangle const pointers to mutable data
in D to be able to call C++ ? You don't need to implement the
feature, you just need a way to create the C++ mangle, which
there is none. The only way is to change C++ code, like you said,
telling people to rewrite their code is never, ever going to work.