So just to be clear, "ref" parameters can now take rvalues?

There's one minor problem I see with this:

S currentVar;
void makeCurrent(ref S var) {
    currentVar = var;
}

makeCurrent(getRValue());

If "makeCurrent" knew that "var" was an rvalue it could avoid calling "postblit" on currentVar, because it's simply a move operation, thus saving a potentially costly deep copy operation and extra destructor call.

Reply via email to