2017-02-27 6 views
-4

_Genericをインスタンス化するには、ソースファイルを.cファイルにしてgcc -std = c11でコンパイルする必要があります。それを.cppファイルとして命名し、g ++ -std = C++ 11を使っても動作しません。また、g ++ -std = c11もありません(これは、-std = c11スイッチが.cファイルにのみ適用できるために必要です)。 C++ライブラリで_Generic関数を定義し、C++アプリケーションでライブラリを使用できるようにするにはどうすればよいでしょうか?その目的は、Cアプリケーションをサポートすることですが、C++アプリケーションのサポートを放棄することはありません。なぜ私は_GenericをC++コードで使用できないのですか?

+11

CとC++は**異なる**言語であるため、**異なる**委員会で構成された異なる標準**によって管理されています。 – StoryTeller

答えて

3

C++には_Genericがなく、C++コードでは使用できません。クロスコンパイル可能なコード(ヘッダファイルなど)を設計する場合は、を完全に避けてください。または、#ifdef __cplusplusを使用して、CとC++の同じコードの2つの独立したバージョン(半独立バージョン)を別々に提供してください。 _GenericではなくC++側で関数のオーバーロードを使用します。

関連する問題