title: vector base derived class
body: <p>I am not able to call negedge of all the subscribers who register for clock, all subscribers also derive from ClkIf</p>
  
  <pre><code>class ClkAdapter : public ClkIf
  {
      virtual void negedge() 
      {
          for(std::list&lt;ClkIf*&gt;::iterator it = clk_list.begin(); it != clk_list.end(); it++)
              (it-&gt;negedge)();
      }
  
      virtual void posedge() 
      { clk_cnt++; }
  
      void registerForClock(ClkIf* module)
      {   clk_list.push_back(module); }
  
      std::list&lt;ClkIf*&gt; clk_list;        
      unsigned long long clk_cnt;
  };
  </code></pre>
  
  <p>error: request for member 'negedge' in '* it.std::_List_iterator&lt;_Tp>::operator-> with _Tp = ClkIf*', which is of non-class type 'ClkIf*'
  Error in negedge function, What is wrong in this code??</p>