The root of the problem
Most programmers think of some types as being values and others as objects
Languages that come close to treating everything as an object have trouble dealing with values
C++, which treats almost everything as a value, requires extra awareness to deal with objects