2017-02-27 127 views
-4

我发现要实例化_Generic,源文件需要是.c文件,并使用gcc -std = c11进行编译。将它命名为.cpp文件并使用g ++ -std = C++ 11不起作用。 g ++ -std = c11也没有(因为-std = c11开关只适用于.c文件),所以这也是预期的。在C++库中定义_Generic函数并让C++应用程序使用该库的好方法是什么?其目的是支持C应用程序,但不会放弃对C++应用程序的支持。为什么我不能在C++代码中使用_Generic?

+11

因为C和C++是** **不同的**语言,受由不同**委员会组成的**不同**标准的管辖。 – StoryTeller

回答

3

C++中没有_Generic,你不能在C++代码中使用它。如果你想设计交叉编译代码(例如头文件),完全避免使用_Generic,或使用#ifdef __cplusplus来分别为C和C++提供相同代码的两个独立(或半独立)版本,例如。在C++端使用函数重载而不是_Generic

相关问题