Why am I getting a type value mismatch?
<p>I am trying to make a vector of iterators in my C++ application:</p>

<pre><code>std::vector&lt;std::list&lt;std::shared_ptr&lt;SelfDefinedType&gt;&gt;::iterator&gt; edge_iters;
</code></pre>

<p><code>SelfDefinedType</code> is a class I declared somewhere above this snippet.</p>

<p>I must admit this organization is a bit complicated, but there is a hierarchical structure to the templating.</p>

<p>I am getting the following compile-time error compiling with C++11.</p>

<pre><code>App.hpp:563:48: error: type/value mismatch at argument 1 in template 
parameter list for ‘template&lt;class _Tp, class _Alloc&gt; class std::vector’
</code></pre>

<p>What does this mean? It seems to be treating <code>std::list&lt;std::shared_ptr&lt;SelfDefinedType&gt;&gt;::iterator</code> as a value instead of a type. Why?</p>

<p>I tried to add spaces to the beginning and end brackets to no avail. I also tried to use typedef to suppress compilation errors, which didn't work.</p>
