"Walter Bright" wrote in message
news:lhi1lt$269h$1...@digitalmars.com...
Here's Andrei's proposal:
extern (C++) template nspace() {
int foo();
}
This seems misleading to readers of future code.
- An "extern (C++)" function lets you use a C++ function.
- An "extern (C++)" interface lets you use a C++ interface
(declared as a class, as is always the case in C++).
- An "extern (C++)" template lets you use a C++... namespace?
On Thursday, 3 April 2014 at 11:19:53 UTC, Daniel Murphy wrote:
Why not just
pragma(cpp_namespace, "outer")
{
pragma(cpp_namespace, "inner")
{
extern(C++) void func();
}
}
This really has only one obvious interpretation (the correct
one), and seems to be a rather harmless addition to the language.
It also fulfills the goal of allowing access to C++ libraries
without cluttering D with C++ language features. I don't want to
have to explain to my students the difference between "modules"
"D templates" and "C++ namespace templates" (it reminds me of
old- and new-style classes in Python 2).