This removes the ability to explicitly cast to the base type, but the requirement to use .base() means the conversion is still explicit.
That it works for the version we have packaged it pure coincidence, as that is one of the few versions that due to a bug allow it. So add the appropriate template specialisations to support it out-of-the-box within OpenTTD.