>>50
They aren't. Look at the wikipedia page you mention. Here are the criteria mentioned:
*
Absence of unchecked run-time type errors. C++: nope lol.
*
Strong guarantees about the run-time behavior of a program before program execution, whether provided by static analysis, the execution semantics of the language or another mechanism. C++: nope lol.
Type safety; that is, at compile or run time, the rejection of operations or function calls which attempt to disregard data types. ... C++: partial credit, only because I omitted the rest of the paragraph.
* [Static typing bullshit omitted]
*
Fixed and invariable typing of data objects. The type of a given data object does not vary over that object's lifetime. C++: nope lol.
*
Omission of implicit type conversion, that is, conversions that are inserted by the compiler on the programmer's behalf. C++: nope lol
*
Disallowing any kind of type conversion. Values of one type cannot be converted to another type, explicitly or implicitly. C++: nope, lol.
*
A complex, fine-grained type system with compound types.
Brian Kernighan: "[..]each object in a program has a well-defined type which implicitly defines the legal values of and operations on the object. The language guarantees that it will prohibit illegal values and operations... C++: nope lol