I would look at placing an out or ref on one of the two parameters and rewrite the call slightly, rather than a new parameter. F[] from = [...], to; to._d_arrayctor(form); To something more like that. But the benchmarks will say weather this works or not.