title: Local class as Template Argument - Point of Instantiation
body: <p>I am trying to wrap my head around example from TC++PL, 4th edition (p.751).</p>
  <pre><code>void fff()
  {
      struct S { int a,b; };
      vector&lt;S&gt; vs;
      // ...
  }
  </code></pre>
  <p>From the discussion, it follows that the point of instantiation of <code>vector&lt;S&gt;</code> is just before the definition of <code>void fff()</code>. However, <code>struct S</code> is not visible outside <code>void fff()</code>. What is proper way to think of the instantiation point with local classes as template arguments?</p>