title: Member template alias to another template member
body: <p>Template alias to the template with some template arguments substituted can be achieved following way:</p>
  
  <pre><code>template &lt;typename T, ConvertFunction&lt;T&gt; F&gt;
  Result&lt;&gt; Convert(Chain&amp; chain, T&amp; field)
  {
  // ... Some unimportant body
  }
  
  template &lt;typename T&gt;
  constexpr Result&lt;&gt;(*ConvertHex)(Chain&amp; chain, T&amp; field) = &amp;ConvertNextTokenTo&lt;T, HexTo&lt;T&gt;&gt;;
  template &lt;typename T&gt;
  constexpr Result&lt;&gt;(*ConvertDec)(Chain&amp; chain, T&amp; field) = &amp;ConvertNextTokenTo&lt;T, IntTo&lt;T&gt;&gt;;
  </code></pre>
  
  <p>That is achievable in the global scope. Very useful feature.</p>
  
  <p>My question is, however, how to achieve similar aliasing within a class?</p>
  
  <pre><code>template &lt;class M&gt;
  class FooBar
  {
     Result&lt;M&gt; m_result;
     chain&amp; m_chain;
  
     template &lt;typename T, ConvertFunction&lt;T&gt; F&gt;
     MessageFromChain&lt;M&gt;&amp; NextTo(T M::* memberPtr)
     {
     // ... Some unimportant body
     }
  
     // What put here?
  };
  </code></pre>
  
  <p>Currently I've just created new members:</p>
  
  <pre><code>   template &lt;typename T&gt;
     FooBar&lt;M&gt;&amp; NextDecTo(T M::* memberPtr)
     {
        return NextTo&lt;T, IntTo&lt;T&gt;&gt;(memberPtr);
     }
  
     template &lt;typename T&gt;
     FooBar&lt;M&gt;&amp; NextHexTo(T M::* memberPtr)
     {
        return NextTo&lt;T, HexTo&lt;T&gt;&gt;(memberPtr);
     }
  </code></pre>
  
  <p>But is is possible to achieve that by aliases? I've tried multiple variants if they compile, they don't work. Thanks for answer if it's even possible. Please don't <strong>unnecessarily</strong> comment if the approach I already used is OK as I'm going to stick to it regardless the answer.</p>