我发现要实例化_Generic,源文件需要是.c文件并使用gcc -std = c11编译。将其命名为.cpp文件并使用g ++ -std = c ++ 11不起作用。 g ++ -std = c11(这是预期的,因为-std = c11开关仅适用于.c文件)。在C ++库中定义_Generic函数的好方法是什么,让C ++应用程序使用库?目的是支持C应用程序,但不放弃对C ++应用程序的支持。
答案 0 :(得分:3)
C ++中没有_Generic
,你不能在C ++代码中使用它。如果要设计交叉编译代码(例如头文件),请完全避免_Generic
,或使用#ifdef __cplusplus
为C和C ++提供相同代码的两个独立(或半独立)版本单独的,例如在C ++端使用函数重载而不是_Generic
。