Certified C++ Standard Library - Printable Version +- MISRA Discussion Forums (https://forum.misra.org.uk) +-- Forum: MISRA C++ (https://forum.misra.org.uk/forumdisplay.php?fid=18) +--- Forum: C++ General (https://forum.misra.org.uk/forumdisplay.php?fid=128) +--- Thread: Certified C++ Standard Library (/showthread.php?tid=1458) |
Certified C++ Standard Library - dejanpan - 10-10-2018 Hi there. We are working on the automotive framework for programming of autonomous cars. Our framework has features that are very similar to those in Adaptive Autosar: https://www.autosar.org/standards/adaptive-platform/. We plan to certify this framework as a Safety Element Out of Context according to ISO 26262. The framework is written in C++ and makes rather heavy use of constructs implemented in Standard Library (see below for the full list). Many C++ keywords like throw or lambdas use the C++ standard library. So removing the C++ standard library would lead to a dysfunctional compiler. We are aware of 3 Standard Library implementations: 1. LLVM libc++: https://libcxx.llvm.org/docs/ 2. GCC libstdc++: https://gcc.gnu.org/ 3. Dinkumware: https://www.dinkumware.com/ Now the problem is that none of the above libraries are certified according to ISO 26262. Questions: 1. **Are you aware of any ISO 26262 certified Standard Library? Or anybody that is working on it?** 2. **Would any of the above implementations qualify for a “proven in use†argument?** Constructs in our framework used from the Standard Library: ```cpp std::string std::vector std::map std::unordered_map std::allocator std::allocator_traits std::shared_ptr std::make_shared std::unique_ptr std::make_unique std::weak_ptr std::enable_shared_from_this std::move std::ostream std::ostringstream std::lock_guard std::mutex std::shared_future std::thread::hardware_concurrency std::this_thread::yield() std::enable_if std::false_type std::is_same std::declval std::function std::bind std::chrono* std::numeric_limits std::shared_future std::runtime_error std::invalid_argument std::int32_t std::type_index std::snprintf ``` |