C ++: ошибка "... не является производной от типа ..." - PullRequest
13 голосов
/ 19 сентября 2010
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<T1, Bimap<T1, T2>::Data*, std::less<_Key>, std::allocator<std::pair<const T1, Bimap<T1, T2>::Data*> > >' is not derived from type 'Bimap<T1, T2>::Data'

Что это значит?В чем здесь проблема?

1 Ответ

15 голосов
/ 19 сентября 2010

сделай это:

typename T1Map::iterator it1;

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...