Russian Qt Forum
Октябрь 01, 2024, 16:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: template  (Прочитано 7687 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #15 : Сентябрь 28, 2013, 17:29 »

Реализация этой функции должна быть там же (в .h) где и её объявление. Скорее всего проблема в этом..
m_ax, если нетрудно - сбацайте примерчик с такой конструкцией (аргумент с конструкцией template). Я читал что она возможна, но на этом мои познания здесь кончаются Улыбающийся Спасибо
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #16 : Сентябрь 28, 2013, 18:35 »

Типичный пример (из книжки, как демонстрация):

Код
C++ (Qt)
template<class T, template<class U, class = std::allocator<U>> class Seq>
class Container {
   Seq<T> seq;
   typedef typename Seq<T>::iterator iterator;
public:
   void append(const T & t) { seq.push_back(t); }
   iterator begin() { return seq.begin(); }
   iterator end() { return seq.end(); }
};
 
int main()
{
   Container<int, std::vector> container;
   container.append(1);
   container.append(2);
 
   for (auto x : container) {
       std::cout << x << std::endl;
   }
   return 0;
}
 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #17 : Сентябрь 29, 2013, 05:49 »

Не понял, а где же "инстанциируется" тип U ?
Записан
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4350



Просмотр профиля
« Ответ #18 : Сентябрь 29, 2013, 08:33 »

Не понял, а где же "инстанциируется" тип U ?
Здесь:
Код
C++ (Qt)
Seq<T>
 
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.17 секунд. Запросов: 23.