Recent updates to C++ to the C-language are making boost forward declarations become compiler errors. This is affecting large portions of our existing code. You will only notice this if you delete existing code and rebuilt it from scratch.
learning_ros_kinetic/Part_4/mobot_drifty_odom/src/mobot_drifty_odom.cpp:9:
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:68:41: error: ‘std::tuple’ has not been declared
R operator()(Func &func, std::tuple<Args...> args) const
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:68:46: error: expected ‘,’ or ‘...’ before ‘<’ token
R operator()(Func &func, std::tuple<Args...> args) const
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:76:77: error: ‘std::tuple’ has not been declared
R m_invoke(T *, Func &func, unsigned_meta_array<indices...>, std::tuple<Args...> args) const
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:76:82: error: expected ‘,’ or ‘...’ before ‘<’ token
R m_invoke(T *, Func &func, unsigned_meta_array<indices...>, std::tuple<Args...> args) const
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:81:80: error: ‘std::tuple’ has not been declared
R m_invoke(void *, Func &func, unsigned_meta_array<indices...>, std::tuple<Args...> args) const
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:81:85: error: expected ‘,’ or ‘...’ before ‘<’ token
R m_invoke(void *, Func &func, unsigned_meta_array<indices...>, std::tuple<Args...> args) const
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp: In member function ‘R boost::signals2::detail::call_with_tuple_args<R>::operator()(Func&, int) const’:
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:72:59: error: ‘args’ was not declared in this scope
return m_invoke(resolver, func, indices_type(), args);
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp: In member function ‘R boost::signals2::detail::call_with_tuple_args<R>::m_invoke(T*, Func&, boost::signals2::detail::unsigned_meta_array<indices ...>, int) const’:
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:78:23: error: ‘get’ is not a member of ‘std’
return func(std::get<indices>(args)...);
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:78:23: note: suggested alternatives:
In file included from /opt/ros/kinetic/include/ros/ros.h:54:0,
from /media/vmrguser/sdd/ros/kinetic/ros_ws/src/books/newman/learning_ros_kinetic/Part_4/mobot_drifty_odom/src/mobot_drifty_odom.cpp:1:
/opt/ros/kinetic/include/ros/param.h:465:18: note: ‘ros::param::get’
ROSCPP_DECL bool get(const std::string& key, std::map<std::string, bool>& map);
^
In file included from /usr/local/include/boost/tuple/tuple.hpp:33:0,
from /usr/local/include/boost/unordered/detail/emplace_args.hpp:26,
from /usr/local/include/boost/unordered/detail/allocator_helpers.hpp:18,
from /usr/local/include/boost/unordered/unordered_map.hpp:17,
from /usr/local/include/boost/unordered_map.hpp:16,
from /opt/ros/kinetic/include/tf/tf.h:44,
from /opt/ros/kinetic/include/tf/transform_broadcaster.h:36,
from /media/vmrguser/sdd/ros/kinetic/ros_ws/src/books/newman/learning_ros_kinetic/Part_4/mobot_drifty_odom/src/mobot_drifty_odom.cpp:9:
/usr/local/include/boost/tuple/detail/tuple_basic.hpp:211:1: note: ‘boost::tuples::get’
get(cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
^
/usr/local/include/boost/tuple/detail/tuple_basic.hpp:225:1: note: ‘boost::tuples::get’
get(const cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
^
In file included from /usr/local/include/boost/signals2/variadic_signal.hpp:21:0,
from /usr/local/include/boost/signals2/signal.hpp:38,
from /usr/local/include/boost/signals2.hpp:19,
from /opt/ros/kinetic/include/tf/tf.h:45,
from /opt/ros/kinetic/include/tf/transform_broadcaster.h:36,
from /media/vmrguser/sdd/ros/kinetic/ros_ws/src/books/newman/learning_ros_kinetic/Part_4/mobot_drifty_odom/src/mobot_drifty_odom.cpp:9:
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:78:41: error: ‘args’ was not declared in this scope
return func(std::get<indices>(args)...);
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp: In member function ‘R boost::signals2::detail::call_with_tuple_args<R>::m_invoke(void*, Func&, boost::signals2::detail::unsigned_meta_array<indices ...>, int) const’:
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:83:16: error: ‘get’ is not a member of ‘std’
func(std::get<indices>(args)...);
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:83:16: note: suggested alternatives:
In file included from /opt/ros/kinetic/include/ros/ros.h:54:0,
from /media/vmrguser/sdd/ros/kinetic/ros_ws/src/books/newman/learning_ros_kinetic/Part_4/mobot_drifty_odom/src/mobot_drifty_odom.cpp:1:
/opt/ros/kinetic/include/ros/param.h:465:18: note: ‘ros::param::get’
ROSCPP_DECL bool get(const std::string& key, std::map<std::string, bool>& map);
^
In file included from /usr/local/include/boost/tuple/tuple.hpp:33:0,
from /usr/local/include/boost/unordered/detail/emplace_args.hpp:26,
from /usr/local/include/boost/unordered/detail/allocator_helpers.hpp:18,
from /usr/local/include/boost/unordered/unordered_map.hpp:17,
from /usr/local/include/boost/unordered_map.hpp:16,
from /opt/ros/kinetic/include/tf/tf.h:44,
from /opt/ros/kinetic/include/tf/transform_broadcaster.h:36,
from /media/vmrguser/sdd/ros/kinetic/ros_ws/src/books/newman/learning_ros_kinetic/Part_4/mobot_drifty_odom/src/mobot_drifty_odom.cpp:9:
/usr/local/include/boost/tuple/detail/tuple_basic.hpp:211:1: note: ‘boost::tuples::get’
get(cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
^
/usr/local/include/boost/tuple/detail/tuple_basic.hpp:225:1: note: ‘boost::tuples::get’
get(const cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
^
In file included from /usr/local/include/boost/signals2/variadic_signal.hpp:21:0,
from /usr/local/include/boost/signals2/signal.hpp:38,
from /usr/local/include/boost/signals2.hpp:19,
from /opt/ros/kinetic/include/tf/tf.h:45,
from /opt/ros/kinetic/include/tf/transform_broadcaster.h:36,
from /media/vmrguser/sdd/ros/kinetic/ros_ws/src/books/newman/learning_ros_kinetic/Part_4/mobot_drifty_odom/src/mobot_drifty_odom.cpp:9:
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:83:34: error: ‘args’ was not declared in this scope
func(std::get<indices>(args)...);
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp: At global scope:
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:116:14: error: ‘tuple’ in namespace ‘std’ does not name a template type
std::tuple<Args& ...> _args;
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp: In constructor ‘boost::signals2::detail::variadic_slot_invoker<R, Args>::variadic_slot_invoker(Args& ...)’:
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:94:49: error: class ‘boost::signals2::detail::variadic_slot_invoker<R, Args>’ does not have any field named ‘_args’
variadic_slot_invoker(Args & ... args): _args(args...)
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp: In member function ‘boost::signals2::detail::variadic_slot_invoker<R, Args>::result_type boost::signals2::detail::variadic_slot_invoker<R, Args>::m_invoke(const ConnectionBodyType&, const boost::signals2::detail::void_type*) const’:
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:108:92: error: ‘_args’ was not declared in this scope
return call_with_tuple_args<result_type>()(connectionBody->slot.slot_function(), _args);
^
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp: In member function ‘boost::signals2::detail::variadic_slot_invoker<R, Args>::result_type boost::signals2::detail::variadic_slot_invoker<R, Args>::m_invoke(const ConnectionBodyType&, ...) const’:
/usr/local/include/boost/signals2/detail/variadic_slot_invoker.hpp:114:92: error: ‘_args’ was not declared in this scope
return call_with_tuple_args<result_type>()(connectionBody->slot.slot_function(), _args);
^
books/newman/learning_ros_kinetic/Part_4/mobot_drifty_odom/CMakeFiles/mobot_drifty_odom.dir/build.make:62: recipe for target 'books/newman/learning_ros_kinetic/Part_4/mobot_drifty_odom/CMakeFiles/mobot_drifty_odom.dir/src/mobot_drifty_odom.cpp.o' failed
make[2]: *** [books/newman/learning_ros_kinetic/Part_4/mobot_drifty_odom/CMakeFiles/mobot_drifty_odom.dir/src/mobot_drifty_odom.cpp.o] Error 1
CMakeFiles/Makefile2:32586: recipe for target 'books/newman/learning_ros_kinetic/Part_4/mobot_drifty_odom/CMakeFiles/mobot_drifty_odom.dir/all' failed
make[1]: *** [books/newman/learning_ros_kinetic/Part_4/mobot_drifty_odom/CMakeFiles/mobot_drifty_odom.dir/all] Error 2