favor static_cast over c-style casts
directly construct maps/structs via initializer list