Я работаю над переносом нашего кода на C++ с eVC 4.0 на Visual Studio 2008. Нашей целью является Windows Mobile 6.1, и мы используем SDK для Windows Mobile 6.0 для нашего приложения.Использование порта STL в VS2008
Наш код использовал порт stl при компиляции в eVC 4, и мы хотели бы продолжать использовать stl-порт, если это вообще возможно.
Кто-нибудь знает, какие шаги необходимы для включения порта STL (5.2.1) в нашем приложении. Мы установили каталоги include в решении (как это было сделано для проекта eVC 4.0), но мы видим ошибки (ниже) в любое время, когда мы пытаемся использовать команды list_back или vector insert с нашими собственными классами (ниже приведена ошибка с нашим классом «TriangleBufferElement»). Эти команды, похоже, работают с родными типами, такими как int, double и т. Д.
Мы обеспечили, чтобы все классы имели надлежащие конструкторы, конструкторы копирования, операторы присваивания и операторы сравнения, и все выглядят правильно.
Любые идеи?
C:\Program Files\Windows CE Tools\stlport\stl/_construct.h(119) : error C2665: 'operator new' : none of the 2 overloads could convert all the argument types
1> C:\Program Files\Windows Mobile 6 SDK\PocketPC\include\../../../Windows Mobile 6 SDK\PocketPC\Include\Armv4i/new(61): could be 'void *operator new(unsigned int,const std::nothrow_t &) throw()'
1> while trying to match the argument list '(unsigned int, TriangleBufferElement *)'
1> C:\Program Files\Windows CE Tools\stlport\stl/_construct.h(134) : see reference to function template instantiation 'void stlp_std::_Copy_Construct_aux<_Tp>(_Tp *,const _Tp &,const stlp_std::__false_type &)' being compiled
1> with
1> [
1> _Tp=TriangleBufferElement
1> ]
1> C:\Program Files\Windows CE Tools\stlport\stl/_vector.h(381) : see reference to function template instantiation 'void stlp_std::_Copy_Construct<_Tp>(_Tp *,const _Tp &)' being compiled
1> with
1> [
1> _Tp=TriangleBufferElement
1> ]
1> C:\Program Files\Windows CE Tools\stlport\stl/_vector.h(376) : while compiling class template member function 'void stlp_std::vector<_Tp>::push_back(const _Tp &)'
1> with
1> [
1> _Tp=TriangleBufferElement
1> ]
1> c:\srcdevbranch\pointlib\dtmconverter\dtm\dtmreader\.\trianglebuffer.h(47) : see reference to class template instantiation 'stlp_std::vector<_Tp>' being compiled
1> with
1> [
1> _Tp=TriangleBufferElement
1> ]
Не могли бы вы добавить образец кода вокруг этой линии ошибки? –
Да, а также теги pre/code вокруг вашей ошибки, чтобы было легче читать. – crashmstr