C ++:error“...不是从类型...派生” [英] C++: error "... is not derived from type ..."

查看:120
本文介绍了C ++:error“...不是从类型...派生”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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;
        /*...*/
    };
};

这给我这个编译错误:

错误:type'std :: multimap< T1,Bimap< T1,T2> :: Data *,std :: less< _Key> ;, std :: allocator< std :: pair< const T1, Bimap< T1,T2> :: Data *> > >'不是从类型Bimap派生的< T1,T2> :: Data'

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

What does that mean? What is the problem here?

推荐答案

make it:

typename T1Map::iterator it1;

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

这篇关于C ++:error“...不是从类型...派生”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆