Insert the specified key and its associated valuePtr into this cache. If key already exists, then its value will be replaced with value. Note that the method with key moved provides the basic but not the strong exception guarantee -- if a throw occurs, the cache will not be modified, but key may be changed. Also note that key must be copyable, even if it is moved.