HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Ошибка компиляции
Подскажите что нужно делать
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Question Ошибка компиляции

У меня возникла проблема при компиляции. Компилирую исходники Parabot c помощью MS Visual Studio .NET 2003 и компилятор пишет:

code:
d:\Games\HLSDK_Full/parabot-source\utils\dynpq.h(58) : error C2440: 'initializing' : cannot convert from 'std::vector<_Ty>::iterator' to 'float *' with [ _Ty=float ] No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include/xstring(1494) : while compiling class-template member function 'dynamic_priority_queue<key_type>::dynamic_priority_queue(std::vector<_Ty> &)' with [ key_type=float, _Ty=float ] d:\Games\HLSDK_Full/parabot-source\bot\pb_mapgraph.cpp(325) : see reference to class template instantiation 'dynamic_priority_queue<key_type>' being compiled with [ key_type=float ] d:\Games\HLSDK_Full/parabot-source\utils\dynpq.h(58) : error C2439: 'dynamic_priority_queue<key_type>::first' : member could not be initialized with [ key_type=float ] d:\Games\HLSDK_Full/parabot-source\utils\dynpq.h(46) : see declaration of 'dynamic_priority_queue<key_type>::first' with [ key_type=float ] Generating Code...

Вот участок кода, на который жалуется компилятор:
C++ Source Code:
1
dynamic_priority_queue<key_type>::dynamic_priority_queue(vector<key_type>& v)
2
: Indices(v.size()), c(v.size()), [color=red]first(v.begin())[/color], csize(v.size())
3
{
4
  index_type i;
5
 
6
 
7
  // store pointers and generate heap
8
  for(i = 0; i< csize; i++)
9
    c[i] = &v[i];
10
  std::make_heap(c.begin(), c.end(), comp);        // STL
11
 
12
  // construct index array
13
  for(i = 0; i< csize; i++)
14
    Indices[c[i] - first] = i;
15
}

Красным выделено то, в чём собственно причина(если это вырезать, то всё нормально, но класс dynamic_priority_queue не работает - халфа вылетает в винду без каких-либо ошибок)

Что нужно сделать в этой ситуации, чтобы компиляция прошла нормально? Строчка No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Наталкивает меня на мысль, что тут нужно либо какое-то #pragma warning( disable : код_ошибки ) либо конвертирование first(v.begin()). Поскольку я не опытный кодер и тем более не программист, я прошу помощи.

Сообщить модератору | | IP: Записан
Сообщение: 29618

Старое сообщение 12-05-2008 20:39
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32210
Нанёс повреждений: 392 ед.

Рейтинг



Экая мерзость на STL. А более других исходников паработа нету?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 29632

Старое сообщение 13-05-2008 06:52
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Дядя Миша перерыл весь инет, нормальных не нашёл, только метамодовские.
А можно ли сделать что-нить в этой ситуации? Может дело в висуал студио и нужна версия 6.0? Хотя конечно я её нигде сейчас не найду.

Сообщить модератору | | IP: Записан
Сообщение: 29664

Старое сообщение 13-05-2008 15:39
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32210
Нанёс повреждений: 392 ед.

Рейтинг



Ku2zoff этож у тебя NET студия, а исходники - на С++.
Попробуй, к примеру 2005-ю студию, ну или 2003-ю.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 29667

Старое сообщение 13-05-2008 16:07
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 02:26. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Ошибка компиляции
Подскажите что нужно делать
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024