void insert(std::pair<std::string, _Type*>&& item)
 {
     createCache();
     if (!_mutex) _mutex = new FastMutex();
     FastMutex::ScopedLock _(*_mutex);
     _instance->insert(std::move(item));
 }
 void insert(std::string const& key, _Type* const& value)
 {
     createCache();
     std::pair<std::string, _Type*> item(key, value);
     if (!_mutex) _mutex = new FastMutex();
     FastMutex::ScopedLock _(*_mutex);
     _instance->insert(item);
 }
 void insert(std::string&& key, _Type*&& value)
 {
     createCache();
     std::pair<std::string, _Type*> item(std::move(key), std::move(value));
     value = NULL;
     if (!_mutex) _mutex = new FastMutex();
     FastMutex::ScopedLock _(*_mutex);
     _instance->insert(item);
 }
 void insert(_Type* const& value)
 {
     createCache();
     char buff[20] = { 0 };
     sprintf(buff, "%lx", (unsigned long)value);
     std::pair<std::string, _Type*> item(buff, value);
     if (!_mutex) _mutex = new FastMutex();
     FastMutex::ScopedLock _(*_mutex);
     _instance->insert(item);
 }