optimization for put/doPut templates to handle output ranges that are passed by value