The _Generic keyword is a C11 feature that allows a macro to call different functions based on the type of its parameters (e.g. it can distinguish between float and int even when both types are the same size).
https://en.cppreference.com/w/c/language/generic.html