Skip to content
This repository has been archived by the owner on Jul 16, 2024. It is now read-only.

Why are we specifying a C++ standard? #1

Open
tpanzarella opened this issue Mar 19, 2018 · 5 comments
Open

Why are we specifying a C++ standard? #1

tpanzarella opened this issue Mar 19, 2018 · 5 comments
Labels
question Further information is requested

Comments

@tpanzarella
Copy link
Contributor

I see, for example here, that a C++ standard is being specified. Why is that? The upcoming release, 0.9.0, which is just a bridge to 1.0.0, has moved on to C++14 and may (will) exploit that feature set moving forward. The C++ standard is being specified in ifm3d, for example, in the camera module, here. It seems to me by forcing a potentially conflicting standard may cause us pain in the future. What was the thought process there?

@tpanzarella tpanzarella added the question Further information is requested label Mar 19, 2018
@graugans
Copy link
Member

So unless we switch to a newer Yocto/Openembedded branch for the camera firmware we can not support a full C++14 standard. For reference this is the list provided by the GCC folks which gives some details about the features available in gcc 4.9.

@tpanzarella
Copy link
Contributor Author

What would it take to switch? I do not think we want to slow down the upstream package to employing the latest standards. Beyond the core technical advantages to moving to the newer standards, operationally, it means less reliance on external packages like Boost.

@maxses
Copy link

maxses commented Mar 19, 2018

The reason why i specified the standard in the Recipe anyway is that i compiled the modules (camera/framegrabber/examples/image...) as stand-alone packages and the top-level CMakeLists.txt (with the c++-standard-specification) is not involved.
Also the cmake-verison in the yocto toolchain (at least in yocto release "fido") does not support the "CMAKE_CXX_STANDARD" option.

@tpanzarella
Copy link
Contributor Author

I should note that the move from C++11 to C++14 is really incremental (like a "patch release"). However, C++17 and C++20 get interesting. So, I am thinking more about our general strategy here than the specifics of C++11 vs C++14 -- just to clarify.

@graugans Per the GCC link you provided, it looks like most of what we would care about is covered in GCC 4.9. The one concern would be the JSON library. While it does state it is implemented in vanilla C++11 it is not something that we can control. Just a thought.

@graugans
Copy link
Member

graugans commented Mar 19, 2018

I do fully agree, we need to move towards new C++ Standards. So an upgrade plan needs to be discussed internally. Would it okay for you to work with the GCC 4.9 C++14 features for 0.9.x and maybe the first 1.0.x versions. I do ask because in this case we have a chance to provide ifm3d oem on the camera and discuss the migration to a newer Openembedded version in April?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants