#
11 C++での拡張モジュール作成

C++でも拡張モジュールは作成できます。ただしいくつか制限があります。 メインプログラム (Python インタプリタ) は C コンパイラでコンパイルされ リンクされているので、グローバル変数や静的オブジェクトをコンストラクタ で作成できません。メインプログラムが C++ コンパイラでリンクされて いるならこれは問題ではありません。 Python インタプリタから呼び出される関数 (特にモジュール初期化関数) は、`extern "C"` を使って宣言しなければなりません。 また、Python ヘッダファイルを`extern "C" {...}` に入れる必要 はありません-- シンボル"`__cplusplus`" (最近の C++ コンパイラは 全てこのシンボルを定義しています) が定義されているときに `extern "C" {...}` が行われるように、ヘッダファイル内に すでに書かれているからです。