title: Deduce outer type from inner type parameter
body: <p>Given <code>struct outer { struct inner { }; }</code>, I want to deduce the outer type from a parameter having the inner type:</p>
  
  <pre><code>template &lt;typename T&gt;
  void f(T t) { ... }
  
  f(outer::inner p)
  {
      // deduce typename 'outer' here
  }
  </code></pre>
  
  <p>Assume that all <code>outer</code> of interest have an inner named <code>inner</code>.</p>