Ошибка C2039 от включения библиотеки MRPT в решение VS2019 - PullRequest
0 голосов
/ 06 марта 2020

Я реализую SLAM-алгоритм в Visual Studio 2019, где я хочу использовать алгоритм ICP из библиотеки MRPT для сопоставления сканирования. Поэтому я скачал и скомпилировал исходный код, используя CMake, и добавил его как внешнюю зависимость.

Код в значительной степени такой же, как и первый пример здесь , с (я считаю) включены все необходимые заголовки.

Мой проект написан на C ++ 17, но, похоже, библиотеки MRPT нет, поскольку я получаю следующие ошибки:

C:\Program Files (x86)\mrpt-1.5.7\libs\opengl\include\mrpt\opengl\COpenGLScene.h(195,27): error C2039: 'bind2nd': is not a member of 'std'
C:\Program Files (x86)\mrpt-1.5.7\libs\base\include\mrpt\random\RandomGenerators.h(292,12): error C2039: 'random_shuffle': is not a member of 'std'
C:\Program Files (x86)\mrpt-1.5.7\libs\bayes\include\mrpt\bayes\CKalmanFilterCapable_impl.h(396,8): error C3861: 'bind1st': identifier not found

Быстрый поиск показал, что эти функции random_shuffle, bind1st, bind2nd удалены в C ++ 17.

Означает ли это, что мне нужно вручную редактировать эти файлы для работы с C ++ 17, или есть какие-нибудь быстрые решения для этого? Например, чтобы внешняя библиотека была скомпилирована с поддерживаемой версией C ++ вместо C ++ 17?

...