You can make it both stricter and more explicit. This is a 30 year old API from when C++ was a very different language. In a modern context, this example was explicitly designed to be as loosely checked as it is, it isn't intrinsic.
Backward compatibility means they can't change this API to not allow these cases even if it is straightforward to do so.
Backward compatibility means they can't change this API to not allow these cases even if it is straightforward to do so.