設定に関する情報
David AbrahamsCopyright © 2002-2015 David Abrahams, Stefan Seefeld
設定
はじめに
Boost.Python は <boost/config.hpp>
にある数個の設定マクロのほか、アプリケーションが与える設定マクロを使用する。これらのマクロについて記載する。
アプリケーション定義のマクロ
これらは Boost.Python を使用するアプリケーションが定義可能なマクロである。動的ライブラリをカバーするのに C++ 標準の厳密な解釈を拡大するのであれば、異なるライブラリ(拡張モジュールや Boost.Python 自身も含む)をコンパイルするときにこれらのマクロの異なる値を使用することは ODR 違反であることに注意していただきたい。しかしながら、この種の違反を検出可能か問題となる C++ 実装は無いようである。
マクロ |
既定 |
意味 |
---|---|---|
|
15 |
引数 |
|
10 |
ラップした C++ クラスの基底型を指定する |
|
(未定義) |
定義すると、モジュール初期化関数がエクスポート対象シンボルとして扱われないようになる(コード内での区別をサポートするプラットフォームの場合)。 |
|
(未定義) |
定義すると、__cdecl 呼び出し規約を使用する関数のラップが可能となる。 |
|
(未定義) |
定義すると、__stdcall 呼び出し規約を使用する関数のラップが可能となる。 |
|
(未定義) |
定義すると、__fastcall 呼び出し規約を使用する関数のラップが可能となる。 |
ライブラリ定義の実装マクロ
これらのマクロは Boost.Python が定義するものであり、新しいプラットフォームへ移植する実装者のみが取り扱う実装の詳細である。
マクロ |
既定 |
意味 |
---|---|---|
|
(未定義) |
定義すると、共有ライブラリ境界をまたいだ |
|
(未定義) |
定義すると、モジュール関数のドキュメンテーション文字列に対して Python のシグニチャが生成されなくなり、モジュールが登録した変換器に Python 型が紐付かなくなる。また、モジュールのバイナリサイズが約 14%(gcc でコンパイルした場合)削減する。boost_python 実行時ライブラリで定義すると、docstring_options.enable_py_signatures() の既定は |
|
|
このマクロを定義すると、Python のシグニチャをサポートしない古いバージョンの Boost.Python からのスムースな移行が有効になる。使用例はここを見よ。 |
|
(未定義) |
定義すると、 |