Простой шаблонный класс и итератор
Пытаюсь сделать простейший шаблонный класс, но, что то у меня возникала проблема. Вот простейший шаблонный класс:
#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; //Теперь все работает.
};
То все работает.
Подскажите пожалуйста, что не так во взаимодействии шаблонов и итератора ?