I have a symbol table implemented as a std::map. For the value, there is no way to legitimately construct an instance of the value type via a default constructo
std::map
Use map::at(). map::operator [] will try to default-construct an element if the key provided does not already exist.
map::at()
map::operator []