Closed marthtz closed 3 years ago
At the moment, I think QCC 5.4 on QNX. But we might soon switch to QCC8. Then there would be nothing which prevents us to switch to C++14 🤞
At the moment, I think QCC 5.4 on QNX. But we might soon switch to QCC8. Then there would be nothing which prevents us to switch to C++14 🤞
AFAIK QCC 5.4 already fully supports C++14. As it is based on GCC see https://gcc.gnu.org/projects/cxx-status.html#cxx14
Hard agree.
Gimme auto
in lambdas :P (and other goodies).
I'm the last one who wouldn't want to use C++14, but currently it seems there are some limitations for QCC 5.4.
It seems QNX is switching to QCC 8, so we would get propper C++14 support. In the end we also need to switch to C++14 if we want to be compliant with the AUTOSAR Adaptive platform. @budrus, @dkroenke, do you have more information about the compiler we need to support? Should we just switch to C++14?
QNX 7.1 with QCC 8.3 was released about 2 weeks ago https://blackberry.qnx.com/en/embedded-software/qnx-software-development-platform
Hi, it seems that you are moving on to C++14, as one possible downstream user, our project will still stick to C++ in the foreseeable future. So, if the API/ABI/linking is compatible, we won't complain, if not, please consider making ver 1.0 C++11 -.-
Discussions on stackoverflow seems that I should not worry too much: Discuss 1 and Discuss 2
Looking forward to 1.0 ~
@elBoberido replying to https://github.com/eclipse/iceoryx/issues/220#issuecomment-669055820:
If we check the status of gcc and libc++ we indeed see that all C++14 features are implemented in the lowest of the above versions:
QNX also has a certified version (QNX OS for Safety 2.2) https://backendnews.net/blackberry-qnx-adds-another-certification-to-its-embedded-software-portfolio/ but this one is also OK wrt the C++14.
For me there is no brainer that iceoryx
should switch to C++14 (which meanwhile can actually not be called moder C++ anymore), not for the features (which are completely modest https://en.wikipedia.org/wiki/C%2B%2B14) but more because of all the bug fixes since the C++11.
@dejanpan totally agree @MiaoDX sorry for not replying that long. It somehow went under the radar. Additionally to what dejapan said, we are also introducing a C-API, so the absolute worst case would be to use that one instead of the C++ API @marthtz @budrus any objections from your side to switch in the near future, let's say in November?
The discussion that is slightly harder is whether iceoryx
should switch to C++17.
For that I would like to give a perspective from the point of view of our company, Apex.AI, that is certifying ROS 2 (currently still written in C++ 14) according to ISO 26262 (ASIL-D).
For this discussion relevant are these simplified steps that happen on the code:
-Werror=format-security
, -Wcast-align
, -pedantic
, -Wunused
, ...)gtest
aarch64
architectures
gcc
and libc++
versions available on above RTOSes and which have been validated with the validation suites like this one: https://solidsands.com/supertest.perf
, heaptrack
, valgrind
, LTT-ng
For us to now decide whether we can switch to the newest version of C++ we need to consider if above RTOSes and tools support, in this case, C++17.
What is unknown/show stopper:
In conclusion: Apex.AI would be willing to switch to C++17 as soon as the Adaptive Autosar Coding Guidelines for C++17 will be available.
QNX also has a certified version (QNX OS for Safety 2.2) https://backendnews.net/blackberry-qnx-adds-another-certification-to-its-embedded-software-portfolio/ but this one is also OK wrt the C++14.
Sounds good. QNX SDP 7 mentions ISO 26262 ASIL D for automotive and C++14 support. However, the "Revision List of the QNX OS for Safety (QOS)" lists the C++ Library as ASIL B? https://www.certipedia.com/fs-products/files/certificates/certificates_asi/2020/EZ/968_EZ_653_13_20/appendix/EZ_653_13_20_RL_2020-11-02_QOS_2_2.pdf
@marthtz that is correct. Which means that for ASIL-D applications that are using such ASIL B certified libc++ one will need to certify the used parts of the libc++ as in context of that application.
Brief feature description
As described in CONTRIBUTING.MD we'd like to move on to support C++ 14.
Detailed information
What's holding us back?