为什么我不能在C++代码中使用_Generic?

3

我发现实例化_Generic需要源文件是.c文件并使用gcc -std=c11编译。将其命名为.cpp文件并使用g++ -std=c++11不起作用。同样,g++ -std=c11也不行(因为-std=c11选项仅适用于.c文件)。有没有一种好的方法在C++库中定义_Generic函数,并让C++应用程序使用该库?目的是支持C应用程序但不放弃对C++应用程序的支持。


13
因为 C 和 C++ 是不同的编程语言,由不同的委员会制定了不同的标准。 - StoryTeller - Unslander Monica
1个回答

7

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


C++中没有哪些其他C语言特性? C++20添加了一个重要的特性,即指定初始化器。 - Shambhav Gautam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接