Serge « sans paille » Guelton
(gdb) p me $1 = {goblin_tinkerer = true, orcish_lumberjack = true, monastery_swiftspear = true}
C++ is exactly that:
increment C and return the old value
-fno-rtti
But keeps the type information needed for exceptions
from libcxx
template <class _Tp> struct __unique_typeinfo { static constexpr int __id = 0; }; template <class _Tp> constexpr int __unique_typeinfo<_Tp>::__id; template <class _Tp> inline constexpr const void* __get_fallback_typeid() { return &__unique_typeinfo<remove_cv_t<remove_reference_t<_Tp>>>::__id; }
-fno-exceptions
from frozen
#if (defined(_MSC_VER) && !defined(_CPPUNWIND)) || \ (!defined(_MSC_VER) && !defined(__cpp_exceptions)) #include <cstdlib> #define FROZEN_THROW_OR_ABORT(_) std::abort() #else #include <stdexcept> #define FROZEN_THROW_OR_ABORT(err) throw err #endif
s/g++/gcc as linker. Say goodbye to…
Placement new are still ok :-)
void* operator new(size_t n) noexcept { return malloc(n); } void operator delete(void * p) noexcept { free(p); }
-ffreestanding (See also: -mkernel)
A few allowed headers, including:
Exceptions and typeid are still in!
And most surprisingly
A very Cool C language :-)
https://gcc.gnu.org/codingconventions.html
> C++ is a complex language, and we strive to use it in a manner that is not surprising
https://llvm.org/docs/CodingStandards.html
PR#19713 (merged)
> Replace numpy custom generation engine by raw C++
It's okay to see C++ as a protean language