diff --git a/CMakeLists.txt b/CMakeLists.txt index e732aa1a..a7599d65 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,9 +88,12 @@ IF(NOT MSVC) IF( NOT CMAKE_CXX_STANDARD AND OpenCV_VERSION_MAJOR EQUAL 4) #Newest versions require std11 include(CheckCXXCompilerFlag) + CHECK_CXX_COMPILER_FLAG("-std=c++17" COMPILER_SUPPORTS_CXX17) CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) - IF(COMPILER_SUPPORTS_CXX11) + IF(COMPILER_SUPPORTS_CXX17) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") + ELSEIF(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") ELSEIF(COMPILER_SUPPORTS_CXX0X) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") diff --git a/src/ros/CameraROS.cpp b/src/ros/CameraROS.cpp index 3f1f9790..9082763a 100644 --- a/src/ros/CameraROS.cpp +++ b/src/ros/CameraROS.cpp @@ -74,12 +74,14 @@ CameraROS::CameraROS(bool subscribeDepth, QObject * parent) : if(approxSync) { approxSync_ = new message_filters::Synchronizer(MyApproxSyncPolicy(queueSize), rgbSub_, depthSub_, cameraInfoSub_); - approxSync_->registerCallback(boost::bind(&CameraROS::imgDepthReceivedCallback, this, _1, _2, _3)); + approxSync_->registerCallback(boost::bind(&CameraROS::imgDepthReceivedCallback, this, + boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); } else { exactSync_ = new message_filters::Synchronizer(MyExactSyncPolicy(queueSize), rgbSub_, depthSub_, cameraInfoSub_); - exactSync_->registerCallback(boost::bind(&CameraROS::imgDepthReceivedCallback, this, _1, _2, _3)); + exactSync_->registerCallback(boost::bind(&CameraROS::imgDepthReceivedCallback, this, + boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); } } } diff --git a/src/ros/print_objects_detected_node.cpp b/src/ros/print_objects_detected_node.cpp index c9eb9fc2..e067cc82 100644 --- a/src/ros/print_objects_detected_node.cpp +++ b/src/ros/print_objects_detected_node.cpp @@ -155,7 +155,8 @@ int main(int argc, char** argv) message_filters::Subscriber objectsSub; objectsSub.subscribe(nh, "objectsStamped", 1); message_filters::Synchronizer exactSync(MyExactSyncPolicy(10), imageSub, objectsSub); - exactSync.registerCallback(boost::bind(&imageObjectsDetectedCallback, _1, _2)); + exactSync.registerCallback(boost::bind(&imageObjectsDetectedCallback, + boost::placeholders::_1, boost::placeholders::_2)); imagePub = it.advertise("image_with_objects", 1);