title: C++ argument list for alias template is missing
body: <p>I use the “alias template” in my “ListNode.h”,there is the code:</p>
  
  <blockquote>
    <p>Note: IDE I use is visual studio 2019</p>
  </blockquote>
  
  <pre><code>//ListNode.h
  #ifndef DSACPP_LIST_LISTNODE_H_
  #define DSACPP_LIST_LISTNODE_H_
  
  typedef int Rank;
  
  template&lt;class T&gt;
  class ListNode
  {
  private:
      T data_;
      ListNodePosi pred_; ListNodePosi succ_;
  
  public:
      ListNode() {}; 
      ListNode(T e, ListNodePosi pred = NULL, ListNodePosi succ = NULL)
          : data_{ e }, pred_{ p }, succ_{ succ } {}
  
  
      ListNodePosi insertAspred(T const&amp; e); 
  };
  
  // alias template
  template&lt;typename T&gt;
  using  ListNodePosi = ListNode&lt;T&gt;*;
  
  template&lt;class T&gt;
  ListNodePosi ListNode&lt;T&gt;::insertAspred(T const&amp; e) 
  /*
  -⭐ there will be a error: argument list for alias template "ListNodePosi" is missing
  */
  {
      ...
  }
  
  #endif
  </code></pre>
  
  <p>I don't konw how to resolve this error. So I'm here to ask for your help. Thank you very much for your answer.</p>