title: C++ - How to typdef templated struct pointer?
body: <p>Here is my code:</p>
  
  <pre><code>#include&lt;iostream&gt;
  using namespace std;
  
  template&lt;typename T&gt;
  struct Doublenode{
      T data;
      struct Doublenode&lt;T&gt;* prev;
      struct Doublenode&lt;T&gt;* next;
  };
  template&lt;typename T&gt;
  using Double_node = typename Doublenode &lt;T&gt;::Double_node;
  template&lt;typename T&gt;
  using DoubleNodePtr = typename Double_node &lt;T&gt;* ::DoubleNodePtr;
  </code></pre>
  
  <p>This gives me the folowing error:</p>
  
  <blockquote>
    <p>error: expected nested-name-specifier
     using DoubleNodePtr = typename (^)Double_node * ::DoubleNodePtr;</p>
  </blockquote>
  
  <p>What is the right way to typdef a templated struct pointer?</p>