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.