Я только что возобновил работу над проектом, который был приостановлен на несколько месяцев. В прошлый раз, когда я скомпилировал его, он работал нормально, без каких-либо ошибок и предупреждений. Но когда я попытался скомпилировать его ранее, я получил это предупреждение
attention : ‘template<class _Operation> class std::binder2nd’ is deprecated [-Wdeprecated-declarations]
Это предупреждение буквально появляется сотни раз, когда включает Eigen/Geometry, который я использую во всем моем проекте
In file included from [...]/include/Eigen/src/Core/ArrayBase.h:109:0,
from [...]/include/Eigen/Core:350,
from [...]/include/Eigen/Geometry:4,
from [...]/include/[myproject]/types.hh:8,
from [...]/include/[myproject]/voronoi.hh:8
С тех пор я не обновил Eigen (используется 3.2.4, который по-прежнему является последним обновлением сегодня). Однако, поскольку в прошлый раз я скомпилировал его, GCC был обновлен до 5.1.0 (я использую archlinux)
Вопрос:
- Есть ли проблема с gcc 5.1.0, говорящая мне, что std:: binder2nd устарел
- Следует ли обновлять Eigen?
- Как я могу отключить эти конкретные предупреждения, не теряя многословия моей сборки?
ANSWER
Я полагаю, что std::bind2nd
действительно устарел и совершена фиксация для решения этой проблемы в Eigen. Однако это коммитирование еще не объединено с ведущей ветвью:/(и не решает проблему, поскольку некоторые std::bind2nd
все еще присутствуют в коде Eigen)
Нижняя строка: Eigen, последняя стабильная версия устарела