title: Is an int variable an object, according to the C++ Standard?
body: <p>Below you'll find the definition of object in C++ Standard.</p>
  
  <p><a href="http://eel.is/c++draft/intro.object#1" rel="noreferrer">[intro.object]/1</a>:</p>
  
  <blockquote>
    <p>The constructs in a C++ program create, destroy, refer to, access, and
    manipulate objects. An <em>object</em> is created by a definition (6.1), by a
    <em>new-expression</em> (8.3.4), when implicitly changing the active member of a union (12.3), or when a temporary object is created (7.4, 15.2).
    An object occupies a region of storage in its period of construction
    (15.7), throughout its lifetime (6.8), and in its period of
    destruction (15.7). [ Note: A function is not an object, regardless of
    whether or not it occupies storage in the way that objects do. —end
    note ] The properties of an object are determined when the object is
    created. An object can have a name (Clause 6). An object has a storage
    duration (6.7) which influences its lifetime (6.8). An object has a
    type (6.9). Some objects are polymorphic (13.3); the implementation
    generates information associated with each such object that makes it
    possible to determine that object’s type during program execution. For
    other objects, the interpretation of the values found therein is
    determined by the type of the <em>expressions</em> (Clause 8) used to access
    them.</p>
  </blockquote>
  
  <p>I have a feeling that yes, an <code>int</code> variable can be considered an object in C++, notwithstanding this statement in the paragraph above:</p>
  
  <blockquote>
    <p>An object occupies a region of storage in its period of construction
    (15.7), throughout its lifetime (6.8), and in its period of
    destruction (15.7).</p>
  </blockquote>
  
  <p>There are several other statements in the Standard that seem to assume that the term <em>object</em> is restricted to class objects. Thus, for the sake of precision, I'm posting this question.</p>