Specifying C++ symbols in C++ namespaces
Kagamin
spam at here.lot
Wed Apr 2 23:44:57 PDT 2014
On Wednesday, 2 April 2014 at 22:06:53 UTC, Walter Bright wrote:
> Here's Andrei's proposal:
>
> extern (C++) template nspace() {
> int foo();
> }
@namespace("nspace")
extern (C++) {
int foo();
}
> One downside of this proposal is that if we ever (perish the
> thought!) attempted to interface to C++ templates, this design
> would preclude that.
If we have partial C++ bindings, why not have partial template
bindings with a subset of features already existing in D? With
that you would only need to implement mangling and linking. An
interesting and simple enough use case is casting:
extern(C++) T my_cast(T,U)(U);
extern(C++) interface A{}
extern(C++) interface B:A{}
A a;
B b = my_cast!B(a);
More information about the Digitalmars-d
mailing list