Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> шаблоны, итераторы и gcc 
V
    Опции темы
DeathKnight
Дата 24.9.2009, 21:06 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 12.10.2007
Где: Минск

Репутация: нет
Всего: нет



Код

template<class T>
void List<T>::del(int num)
{
    deque<T>::iterator pos;
    pos=std::find(cont.begin(), cont.end(), cont[num]);
    cont.erase(pos);
}


это один из методов шаблонного класса основанного на деке.
проблема в том, что gcc(myngwin) ругается на строчку 

Код

 deque<T>::iterator pos;



якобы после iterator должна быть точка с запятой, а вот vc 2008 спокойно съедает и все нормально работает.

кто-нибудь может объяснить прикол? 
PM   Вверх
bsa
Дата 24.9.2009, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



std:: не забыл?
PM   Вверх
DeathKnight
Дата 24.9.2009, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 12.10.2007
Где: Минск

Репутация: нет
Всего: нет



Цитата(bsa @  24.9.2009,  22:02 Найти цитируемый пост)
std:: не забыл? 


нет. если бы забыл, вижуал бы это не съел.
тут что-то в самом мингвине
PM   Вверх
andrew_121
Дата 24.9.2009, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



покажи вывод gcc.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
ller
Дата 24.9.2009, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: 2
Всего: 4



Код

    deque<char>::iterator pos;


при компиляции в VS2008
Код

error C2065: 'deque' : undeclared identifier
 error C2062: type 'char' unexpected
error C2039: 'iterator' : is not a member of '`global namespace''


при компиляции в MinGW
Код

error: 'deque' was not declared in this scope
error: expected primary-expression before 'char'
error: expected ';' before 'char'


при
Код

std::deque<char>::iterator pos;

Все компилится...
Цитата(bsa @  24.9.2009,  22:02 Найти цитируемый пост)
std:: не забыл? 


Это сообщение отредактировал(а) ller - 24.9.2009, 23:43
PM MAIL   Вверх
Vaulter
Дата 25.9.2009, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



как показывает практика, gcc  всегда ругается правильно smile

проверь:
Код

using std::deque;
deque<T>::iterator pos;


будет так?
 smile 

Это сообщение отредактировал(а) Vaulter - 25.9.2009, 00:06


--------------------
PM MAIL WWW ICQ   Вверх
Lazin
Дата 25.9.2009, 08:28 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



ты просто используешь зависимое имя, вместо:
std::deque<T>::iterator pos;
напиши
typename std::deque<T>::iterator pos;
PM MAIL Skype GTalk   Вверх
andrew_121
Дата 25.9.2009, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



или:
Код

template<class T>
void List<T>::del(int num)
{
    auto pos=std::find(cont.begin(), cont.end(), cont[num]);
    cont.erase(pos);
}



--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
zim22
Дата 25.9.2009, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



DeathKnight, я же тебе ответил уже.


--------------------
PM MAIL   Вверх
bsa
Дата 25.9.2009, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



andrew_121, С++ 0x еще не стандартизирован. Поэтому такой синтаксис недопустим. И еще долго будет недопустим в большинстве контор...
PM   Вверх
andrew_121
Дата 25.9.2009, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(bsa @  25.9.2009,  13:29 Найти цитируемый пост)
С++ 0x еще не стандартизирован.

знаю.

Цитата(bsa @  25.9.2009,  13:29 Найти цитируемый пост)
Поэтому такой синтаксис недопустим.

еще как допустим. он же все равно войдет в обиход.

Цитата(bsa @  25.9.2009,  13:29 Найти цитируемый пост)
И еще долго будет недопустим в большинстве контор... 

ну не знаю. у меня линукс сама проапгрейдилась до gcc-4.4.0. ubuntu.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
bsa
Дата 25.9.2009, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(andrew_121 @ 25.9.2009,  16:25)
ну не знаю. у меня линукс сама проапгрейдилась до gcc-4.4.0. ubuntu.

А у меня нет.
И я имел в виду не дистрибутивы и компиляторы, а стандарты кодирования в программистских конторах. В некоторых до сих пор на VS 6 пишут.
PM   Вверх
andrew_121
Дата 25.9.2009, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(bsa @  25.9.2009,  17:44 Найти цитируемый пост)
VS 6 пишут. 

печально


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
DeathKnight
Дата 25.9.2009, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 12.10.2007
Где: Минск

Репутация: нет
Всего: нет



все, подсказали.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1115 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.