tbsaunde+...@tbsaunde.org writes: > -template <typename H> > +template <typename H, typename Value> > template <typename T> > inline void > -simple_hashmap_traits <H>::remove (T &entry) > +simple_hashmap_traits <H, Value>::remove (T &entry) > { > H::remove (entry.m_key); > + entry.m_value.~Value (); > }
This is just repeating my IRC comment really, but doesn't this mean that we're calling the destructor on an object that was never constructed? I.e. nothing ever calls placement new on the entry, the m_key, or the m_value. Thanks, Richard