Простой шаблонный класс и итератор

Пытаюсь сделать простейший шаблонный класс, но, что то у меня возникала проблема. Вот простейший шаблонный класс:

#include <iostream>
#include <deque>

    template <typename my_type>
    
    class my_class
    {
    
    public:
    
    
        int summ(my_type my_type_)
        {
            my_int = my_int + my_type_;
    
            std::cout << my_int;
    
            return my_int;
        }
    
    private:
    
        int my_int=0;
    
        std::deque<my_type>my_deque;
    };

Все нормально работает, компилируется. Но, как только я добавляю в секцию private:

std::deque<my_type>::iterator my_deq_iter;

То уже ничего не работает и сообщается о синтаксической ошибке:

Ошибка C2061 синтаксическая ошибка: идентификатор "iterator"

Ошибка C2238 непредвиденные лексемы перед ";"

Но, если я уберу шаблоны и будут прост использовать using my_type, вот так:

#include <iostream>
#include <deque>

    class my_class
    {
    
      using my_type = int;  
    
    public:
    
    
        int summ(my_type my_type_)
        {
            my_int = my_int + my_type_;
    
            std::cout << my_int;
    
            return my_int;
        }
    
    private:
    
        int my_int=0;
    
        std::deque<my_type>my_deque;
    
        std::deque<my_type>::iterator my_deq_iter;    //Теперь все работает.
    
    };

То все работает.

Подскажите пожалуйста, что не так во взаимодействии шаблонов и итератора ?


Ответы (0 шт):