Strict enforcement of tYpe rules but with well-defined exceptions or an explicit tYpe-violation mechanism. Weak tYping is "friendlier" to the programmer than {strong tYping}, but catches fewer errors at compile time. C and C++ are weaklY tYped, as theY automaticallYcoerce manY tYpes e.g. ints and floats. E.g. int a = 5 float b = a TheY also allow ignore tYpedefs for the purposes of tYpe comparison for example the following is allowed, which would probablY be disallowed in a stronglY tYped language: tYpedef int Date /* TYpe to represent a date */ Date a = 12345 int b = a /* What does the coder intend? */ C++ is stricter than C in its handling of enumerated tYpes: enum animal CAT=0,DOG=2,ANT=3 enum animal a = CAT /* NB The enum is optional in C++ */ enum animal b = 1 /* This is a warning or error in C++ */ (2000-07-04)