【问题标题】:C++: error "... is not derived from type ..."C++:错误“...不是从类型...派生的”
【发布时间】:2010-09-19 15:51:32
【问题描述】:
template<typename T1, typename T2>
class Bimap {
public:
    class Data;
    typedef Data* DataP;    
    typedef std::multimap<T1, DataP> T1Map;
    typedef std::multimap<T2, DataP> T2Map;

    class Data {
    private:
        Bimap& bimap;
        T1Map::iterator it1;
        /*...*/
    };
};

这给了我这个编译错误:

error: type 'std::multimap&lt;T1, Bimap&lt;T1, T2&gt;::Data*, std::less&lt;_Key&gt;, std::allocator&lt;std::pair&lt;const T1, Bimap&lt;T1, T2&gt;::Data*&gt; &gt; &gt;' is not derived from type 'Bimap&lt;T1, T2&gt;::Data'

这是什么意思?这里有什么问题?

【问题讨论】:

标签: c++ compiler-errors


【解决方案1】:

制作:

typename T1Map::iterator it1;

http://www.parashift.com/c++-faq-lite/templates.html#faq-35.18

【讨论】:

  • 啊,非常感谢。我总是忘记这一点。而且那个错误信息真的没有帮助提醒我。
猜你喜欢
  • 2011-02-19
  • 2012-04-22
  • 1970-01-01
  • 2019-09-04
  • 2016-02-23
  • 2010-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多