2017-02-27 126 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

相關問題