2011年12月にリリースされたC標準の新しいバージョンであるC11に関するウィキペディアの記事を読んでいたところ、追加された機能の1つが「タイプジェネリック式」であることがわかりました。
_Generic
キーワードを使用したタイプジェネリック式。たとえば、次のマクロcbrt(x)は、 x のタイプに応じて、 cbrtl (x)、cbrt(x)、またはcbrtf(x )に変換されます。#define cbrt(X) _Generic((X), long double: cbrtl, \ default: cbrt, \ float: cbrtf)(X)
これは私にはかなり恐ろしいように見えます-とにかく言語を変更しようとしているのなら、C ++のように関数のオーバーロードを追加してみませんか?