use boost::forward for forwarding deleter