rvalue references
w0rp
devw0rp at gmail.com
Wed Feb 26 00:10:28 PST 2014
I feel I should mention a detail I observed. I am working on a
library which generates D code from C++ code with wrappers. I
found an interesting situation when I realised that I need to do
something like this.
void setPosition(ref const(QPoint) point) {
...
// Static array.
auto stack = smokeStack(&point);
cls.classFn(..., stack.ptr);
...
}
The above resulting in passing a pointer to a D struct which gets
a reinterpret_cast on the C++ end and copied from that after
that. Because I wish to also allow temporaries for this for
obvious reasons, I must change my function signature to a
template.
void setPosition()(auto ref const(QPointF) point);
So whatever happens with rvalue references, I would like to see
the ability to take the address of an rvalue reference in a
completely unsafe manner. (Or is const& an lvalue? I have
forgetten my Scott Meyers knowledge.) I would make this an error
in @safe functions, but allowable for @system and @trusted.
More information about the Digitalmars-d
mailing list