I don't see anything obviously wrong, but then I don't see obviously how
it works. :)
Still, it appears the code fights the strict typing.
Might help with auxiliary definitions like
template< class Key, class Value >
using Fastmap = std::map<
Key, Value, std::greater<Key>,
boost::fast_pool_allocator<std::pair<Key, Value>>
>;
Oh well that might be it, that the key part of the pair should be
`const`, yes?
There's an amazing little gotcha in the standard, that even something
that's /dynamically allocated/ as originally `const` can't be modified
without UB. Not directly relevant here but amazing anyway. :)
Cheers!,
- Alf