title: Value_type of a container template parameter
body: <p>In his keynote of this years Going Native <a href="http://channel9.msdn.com/Events/GoingNative/2013/Opening-Keynote-Bjarne-Stroustrup" rel="noreferrer">The Essence of C++</a> (go to 40:30) Bjarne Stroustrup gives the following code example: </p>
  
  <pre><code>template&lt;typename C, typename V&gt;
  vector&lt;Value_type&lt;C&gt;*&gt; find_all(C&amp; cont, V v) 
  {
      vector&lt;Value_type&lt;C&gt;*&gt; res; 
  
      for (auto&amp; x : cont) 
          if (x == v) 
              res.push_back(&amp;x)
  
      return res;
  }
  </code></pre>
  
  <p>This function is used to find all occurrences of a value in a container
  and returns pointers to the found elements. The example from the video: </p>
  
  <pre><code>string m{"Mary had a little lamb"}; 
  for (const auto p: find_all(m,'a')) // p is a char*
      if (*p != 'a')
          cerr &lt;&lt; "string bug!\n"; 
  </code></pre>
  
  <p>My question is about <strong><code>Value_Type&lt;C&gt;*</code></strong>. Is there something like this in the standard 
  library? I looked for it and didn't find it. How could this be implemented, if it's not in std? </p>