I personally don't like this. It will be simpler and safer to use `std::map`.