void put(const K& k, U v) { if (!v) impl.erase(k); else impl.insert(k, std::move(v)); }
void put(const K& k, V v) { if (v == V()) impl.erase(k); else impl.insert(k, std::move(v)); }
void erase(const K& k) { impl.erase(k); }