In C++11 3p3 it states:
An entity is a value, object, reference, function, enumerator, type, class member, template,
An object is something that is stored in memory (cf. 1.8: "An object is a region of storage"). Every object has a value (which is itself), but values are more general, in the sense that the evaluation of every expression gives a value. For example, a prvalue, such as the value of f() for a declared function T f();, may or may not have storage – you cannot take its address, and its existence may not need to be manifest as storage. (However, once you bind the value to a reference variable or formal parameter, you now have a way of referring to the object by name.)
The difference is mainly one of language semantics, though, and not usually of practical importance. (For example, people often refer to "temporary objects", although "temporary value" would be more accurate.) Values and objects both have types (which are always object types), an object can be evaluated to produce a value, and a value can be treated as an object. I would use "object" when talking about the code design, allocations and storage, and "value" when talking about grammatical rules of the language.