title: is not a template type
body: <p>I am getting more and more in touch with generic templates which means, I am still no expert. I adapted the idea of the implementation of a template for objects and pointers (C++ special edition section 13.5) to my graph implementation but I am stuck for days now.</p>
  
  <p>I have three header files and commented out every method declaration and implementation to get closer to the following and still coming errors:</p>
  
  <blockquote>
    <p>In file included from DirectedGraph.cpp:8:0:
    DirectedGraph.h:16:48: error: ‘DirectedGraph’ is not a template type
         template class DirectedGraph : public Graph </p>
    
    <p>DirectedGraph.h:45:22: error: ‘DirectedGraph’ is not a class template
         template&lt;> class DirectedGraph : public Graph</p>
    
    <p>DirectedGraph.h:45:50: error: ‘DirectedGraph’ is not a template type
         template&lt;> class DirectedGraph : public Graph</p>
    
    <p>DirectedGraph.h:74:48: error: ‘DirectedGraph’ is not a class template
         template class DirectedGraph : private Graph</p>
    
    <p>DirectedGraph.h:74:80: error: ‘DirectedGraph’ is not a template type</p>
  </blockquote>
  
  <pre><code>// Graph.h
  template&lt;class V_type, class E_type&gt; class Graph
  {    };
  
  template&lt;&gt; class Graph&lt;void *, void *&gt;
  {    };
  
  template&lt;class V_type, class E_type&gt; class Graph&lt;V_type *, E_type *&gt; : public Graph&lt;void *, void *&gt;
  {    };
  
  
  // Vertex.h
  template&lt;class V_type, class E_type&gt; class Vertex
  {
      friend class DirectedGraph;
  };
  
  template&lt;&gt; class Vertex&lt;void *, void *&gt;
  {
      friend class DirectedGraph;
  };
  
  template&lt;class V_type, class E_type&gt; class Vertex&lt;V_type *, E_type *&gt; : private Vertex&lt;void *, void *&gt;
  {
      friend class DirectedGraph;
  };
  
  
  // DirectedGraph.h
  template&lt;class V_type, class E_type&gt; class DirectedGraph : public ggraph::Graph&lt;V_type, E_type&gt;
  {    };
  
  template&lt;&gt; class DirectedGraph&lt;void *, void *&gt; : public ggraph::Graph&lt;void *, void *&gt;
  {    };
  
  template&lt;class V_type, class E_type&gt; class DirectedGraph&lt;V_type *, E_type *&gt; : private ggraph::Graph&lt;void *, void *&gt;
  {    };
  </code></pre>