Пробую (для обучения) реализовать свою двустороннюю очередь.
template <class T> class Deque
{
private:
    enum { defaultSize = 25, len = 5 };
    void dealloc ( );
    int alloc   ( const unsigned & = defaultSize, const T & = T() );
    T ** array;
    pair<int,int> xy;
...
public:
    Deque ( const unsigned &, const T & = T() );                       //1
    template <class Iterator> Deque (Iterator _first, Iterator _last); //2
    Deque ( ); 
    virtual ~Deque();
};
В main.cpp идёт создание дека:
Deque<int> test1(25, -1);Все хорошо если нет 2-го конструктора. Второй конструктор «перебивает» действие первого. Почему так происходит я не понимаю, ведь в конструктор передаются типы const unsigned и const int и как я понимаю компилятору следовало бы направить этот путь к первому конструктору, но он упорно использует второй...
Подскажите пожалуйста что не так.



