Некоторые сходства включают в себя:
- статические утверждения:
_Static_assert ( constant-expression , string-literal );
- Атомная поддержка
- поддержка Unicode - добавляет некоторые typedefs (например,
char16_t
= uint_least16_t
), литералы и утилиты.
_Generic
_Generic
действительно больше похоже на перегрузку, чем то, что у нас есть с помощью шаблонов. Вездесущий пример _Generic
:
#define cbrt(X) _Generic((X), long double: cbrtl, \
default: cbrt, \
float: cbrtf)(X)
.. но я не уверен, какие именно унаследованы от C ++.