Update smartpointers.h

Use move semantics and perfect forwarding for 'make_unique' according to c++14