// const V& ? with a static default V? V *get(const K& k) { U *up = impl.search(k); return up ? up->get() : nullptr; }
// const V& ? with a static default V? V get(const K& k) { V *vp = impl.search(k); return vp ? *vp : V(); }