Я реализую 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?