Форум программистов, компьютерный форум CyberForum.ru

template (найти ошибку в коде) - C++

Восстановить пароль Регистрация
 
VadikSh
0 / 0 / 0
Регистрация: 16.07.2011
Сообщений: 13
09.08.2013, 20:05     template (найти ошибку в коде) #1
Добрый день!

Подскажите, где ошибка? никак не пойму...как нешаблонная ф-я она работает...где-то у меня в оформлении ошибка

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template <typename T>
void reverse_container(vector<T>::iterator it_beg, vector<T>::iterator it_end)
{
  
     for(it_beg, --it_end; (it_beg!=it_end)&&(it_beg!=it_end-1); ++it_beg, --it_end)
    {
      int temp;
      temp=*it_beg;
      *it_beg=*it_end;
      *it_end=temp;
      cout<<" "<<*it_beg<<" "<<*it_end;
    }
}
выдает ошибку - variable or field `reverse_container' declared void
template declaration of `int reverse_container'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2013, 20:05     template (найти ошибку в коде)
Посмотрите здесь:

найти ошибку в коде C++
C++ Найти ошибку в коде
C++ Найти ошибку в коде
C++ Найти ошибку в коде
C++ Найти ошибку в коде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
09.08.2013, 20:13     template (найти ошибку в коде) #2
Ну видимо как-то так
C++
1
2
template <typename T>
void reverse_container(T it_beg, T it_end)
Добавлено через 1 минуту
Ну и явно временная переменная temp не должна быть типа int.

Добавлено через 54 секунды
11 строка - итератор end не следует разыменовывать...
VadikSh
0 / 0 / 0
Регистрация: 16.07.2011
Сообщений: 13
09.08.2013, 20:26  [ТС]     template (найти ошибку в коде) #3
тогда в шаблоне и в ф-и должны быть типы - BidirectionalIterator...а без них можно как-то обойтись?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
09.08.2013, 20:30     template (найти ошибку в коде) #4
Цитата Сообщение от VadikSh Посмотреть сообщение
C++
1
vector<T>::iterator
iterator - зависимый от параметра шаблона тип, грубо говоря компилятор не знает тип это, или ещё что. Нужно явно это указать
C++
1
typename vector<T>::iterator
Вообще лучше сделать как писал 0x10.
Yandex
Объявления
09.08.2013, 20:30     template (найти ошибку в коде)
Ответ Создать тему
Опции темы

Текущее время: 23:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru