avoid pessimizing move
Do not use std::move
when returning a local object -- as that forbids 'copy elision', which will actually insure that the object is created 'in the right location' to begin with, thus eliminating a move... (no work -- here: copy elision -- is faster than less work -- here: move instead of copy)