Static type checking. C++ is a language that supports static type checking. Static type checking helps to catch many errors during compilation, because the programmer has to fix the type of a name used. Any violation of the type model leads to an error message and cancels compilation. So, run-time errors decrease.