First of all, sorry for my English.
According to the C++11 Standard:
§[basic].3: An entity is a value, object, reference, function, enumerator, type, class member, template, template specialization, namespace, parameter pack, or this.
Isn't it each value and object? For example, nullptr
identifies a "value" of type nullptr_t
, but, since nullptr_t
is a scalar type, it is also an object type, and nullptr
is thus an object.
With this
I've the same controversy: when this
is used in correct situations (in non-static member functions or data member initializers) is a pointer prvalue and thus of scalar/object type, and in consequence an object.
Isn't it?