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()) | 
| 7 |   // store pointers and generate heap | 
| 8 |   for(i = 0; i< csize; i++) | 
| 10 |   std::make_heap(c.begin(), c.end(), comp);        // STL | 
| 12 |   // construct index array | 
| 13 |   for(i = 0; i< csize; i++) | 
| 14 |     Indices[c[i] - first] = i; | 
 
Красным выделено то, в чём собственно причина(если это вырезать, то всё нормально, но класс 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()). Поскольку я не опытный кодер и тем более не программист, я прошу помощи.
Отправлено Дядя Миша 13-05-2008 в 06:52:
 
Экая мерзость на STL. А более других исходников паработа нету?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Ku2zoff 13-05-2008 в 15:39:
 
Дядя Миша перерыл весь инет, нормальных не нашёл, только метамодовские. 
А можно ли сделать что-нить в этой ситуации? Может дело в висуал студио и нужна версия 6.0? Хотя конечно я её нигде сейчас не найду.
Отправлено Дядя Миша 13-05-2008 в 16:07:
 
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'