title: could not deduce template argument for T* from FieldType* (Visual C++ only)
body: <p>This code compiles OK on <strong>g++ (<a href="http://coliru.stacked-crooked.com/a/4e35d658effca3df" rel="nofollow noreferrer">Coliru</a>)</strong>, but not <strong>Visual C++ (<a href="http://rextester.com/MOH83998" rel="nofollow noreferrer">rextester</a>)</strong> - both online and my desktop.</p>
  
  <p><em>It is a simplified version of a much larger Visual Studio 2015 project.</em></p>
  
  <pre><code>class AAA{
      public: template&lt;class T&gt; static T*  test(T* hqi){
          return hqi;
      }
  };
  class TTT3{ 
      public: int d;   //In real case, it is some class, but same error nonetheless.
      decltype(AAA::test(&amp;d)) dfd=AAA::test(&amp;d);  //&lt;-- error only Visual C++
  };
  int main(){
      int b;
      decltype(AAA::test(&amp;b)) dfd=AAA::test(&amp;b);  //OK for boths
  }
  </code></pre>
  
  <blockquote>
    <p>'T *AAA::test(T *)': could not deduce template argument for 'T <em>' from
    'int TTT3::</em> '</p>
  </blockquote>
  
  <p><strong>Question</strong>   </p>
  
  <ul>
  <li>Why?  Is my code wrong? - I don't think so.</li>
  <li>How to make it compile in Visual C++?  I need it.</li>
  </ul>