ページ

2011年10月31日月曜日

swig生成コードがerror: no matching function for callとのたまったら

以下の条件に当てはまるか確認します。

  1. エラー該当コード行が以下のようなデフォルトコンストラクタを呼ぶコード
    Ogre::ResourceManager::ResourceMapIterator result;

  2. Ogre::ResourceManager::ResourceMapIteratorはデフォルトコンストラクタを呼べない


当てはまる場合は、デフォルトコンストラクタを呼ばないコード生成をswigにさせましょう。
具体的には、以下のような2行を、該当コードを生成するクラス用interface宣言より前に記述します。

%feature("valuewrapper") Ogre::ResourceManager::ResourceMapIterator;
class Ogre::ResourceManager::ResourceMapIterator;

詳しい説明は、こちら

結果、コードが以下のように代わり、デフォルトコンストラクタが呼ばれないコードとなります。
SwigValueWrapper< Ogre::ResourceManager::ResourceMapIterator > result;

keywords: swig, default constructor

0 件のコメント:

コメントを投稿