[C++14] remove explicit -std=c++11, default to 14#1525
[C++14] remove explicit -std=c++11, default to 14#1525dirk-thomas merged 1 commit intoros:melodic-develfrom
Conversation
From REP-0003 > Melodic > As of ROS Melodic, we are using the C++14 (ISO/IEC 14882:2014) standard. Related to discussion on moveit/moveit#1146
|
What is the purpose of removing the C++11 option? Just because Melodic could leverage C++14 doesn't mean it has to. |
|
For clarity and consistency. The lack of triggered discussions on the moveit issue which I linked to above. But @clalancette has recently answered on that issue. I opened ros/pluginlib#131, ros/roscpp_core#94, and this issue to create consistency throughout the ros_comm stack. The REP reads:
And in downstream packages when we bump to C++14 (and actually want to take advantage of the features) there is discussion if we can safely use C++14 while some things were still being compiled as C++11. To summarize the other issue @gavanderhoorn wrote:
@clalancette wrote:
I think the REP-0003 is clear:
These PRs (ros/pluginlib#131, ros/roscpp_core#94, and this #1525) are not actually using any C++14 features, they are just removing any doubts or concerns about actually using C++14 when there are 4 packages within the ros_comm stack which are compiled with -std=c++11 This type of clarity isn't too important with minor bumps to C++ standards, C++11->C++14 but C++11->C++17 and C++20 will be large bumps to the C++ standards... And for those future bumps I think it is important that ros_comm sets clear precedent and removes ambiguity by compiling with the standard which is being used by that release. Edit: I linked to the wrong PR ros/roscpp_core#9 -> ros/roscpp_core#94 |
|
Is there any technical reason why "consistency" is needed? Are you aware of any incompatibilities between C++11 and C++14 libraries? |
|
No, there is no technical reason and I'm not aware of any incompatibilities between C++11 -> C++14. Internally, with regards to compatibility issues, we were going to switch to C++14 and it turned out to be as simple as changing the compile option. |
|
@ros-pull-request-builder retest this please |
dirk-thomas
left a comment
There was a problem hiding this comment.
While you mentioned in #1525 (comment) that is no technical reason to change this it should be fine to drop the explicit -std=c++11 from the melodic-devel branch.
|
Thanks for re-triggering the tests, is there a list of known unstable tests? |
No, there is not. The recent non-green devel and PR builds for the package give an idea which tests are flaky though. @ros-pull-request-builder retest this please |
From REP-0003 > Melodic > As of ROS Melodic, we are using the C++14 (ISO/IEC 14882:2014) standard. Related to discussion on moveit/moveit#1146
From REP-0003
Related to discussion on moveit/moveit#1146