определить пару итераторов в классе шаблона с параметром шаблона - PullRequest
0 голосов
/ 03 января 2012

как я могу определить пара итераторов в классе шаблона с параметром шаблона

template <typename S,typename T>
class pairMove :public pair<S,T>
{

private:
    pair< multimap<S,T>::iterator , multimap<S,T>::iterator > pairIt;

я получаю эту ошибку во время компиляции

// Ошибка 2: ошибка C2923: 'std :: pair': 'std :: multimap :: iterator' есть недопустимый аргумент типа шаблона для параметра '_Ty1'

любое решение, чтобы решить мою проблему

1 Ответ

6 голосов
/ 03 января 2012

Вам не хватает ключевого слова typename:

pair<typename multimap<S,T>::iterator, typename multimap<S,T>::iterator> pairIt;
     ^^^^^^^^                          ^^^^^^^^

Обратите внимание, что S и T являются template типами; и когда они используются в сочетании с оператором :: для получения другого зависимого типа, нужно использовать typename.

Еще одна хорошая дискуссия на эту тему.

...