title: error: no type named ‘value_type’ in ‘class
body: <p>I am getting the following compiler error:</p>
  
  <p>(<code>graph_algorithms.h:59:111: error: no type named ‘value_type’ in ‘class Graph::graph_algorithms&lt;int&gt;::vertex_comparer’</code>)</p>
  
  <p>What does this mean?</p>
  
  <p>The following line gives me a whole slew of compiler errors </p>
  
  <pre><code>std::priority_queue&lt;typename Graph::graph&lt;U&gt;::vertex, typename Graph::graph_algorithms&lt;U&gt;::vertex_comparer&gt; pri_que;
  </code></pre>
  
  <hr>
  
  <pre><code>#ifndef GRAPH_ALGORIUHMS_H_
  #define GRAPH_ALGORIUHMS_H_
  
  #include &lt;queue&gt;
  #include "graph.h"
  
  namespace Graph
  {
    template &lt;class U&gt;
    class graph_algorithms
    {
    // Forward declarations of 
    // internal classes
    private :
      class vertex_comparer;
  
    public :
      graph_algorithms(graph&lt;U&gt; &amp;graph) :
        m_Graph(graph)
      {}  
    // List of algorithms to perform on graph
    typename std::queue&lt;U&gt; &amp;find_key_breadth_first(U key);
  
    // Definition of internal classes
    private :
      class vertex_comparer
      {   
      public:
        bool operator()(typename graph&lt;U&gt;::vertex &amp;v1, typename graph&lt;U&gt;::vertex &amp;v2)
        {   
          return (v1.key() &lt; v2.key()) ? true : false;
        }   
      };  
    private :
      // Private member variables and methods
      graph&lt;U&gt; &amp;m_Graph;
      std::queue&lt;U&gt; m_Queue;
      void breadth_first_search(U key);
    };  
  }
  </code></pre>