Why the Standard claims that containers are objects? : <p>Container's definition from the Standard:</p>

<blockquote>
  <p>§23.2.1/1: <strong>Containers are objects</strong> that store other objects. They control allocation and deallocation of these objects through constructors, destructors, insert and erase operations.</p>
</blockquote>

<p>I think the container's definition above contradicts with the definition from C++ Primer book (which I prefer):</p>

<blockquote>
  <p><strong>Container is a type</strong> whose objects hold a collection of objects of a given type. </p>
</blockquote>

<p>It's obvious that (abstract) type can't be an object (any object must occupy a region of storage). 
You can say that C++ <strong>container is a class template</strong>. But templates are not objects too. There is a note about it from <a href="http://en.cppreference.com/w/cpp/language/object" rel="nofollow noreferrer">cppreference</a>:</p>

<blockquote>
  <p>The following entities are not objects: value, reference, function, enumerator, <strong>type</strong>, non-static class member, bit-field, <strong>template</strong>, class or function template specialization, namespace, parameter pack, and this.</p>
</blockquote>

<p>So why the Standard claims that containers are objects? Maybe there is a mistake somewhere?</p>
