2013-05-13 5 views
10

SWIGを使用してboost::shared_PtrをTclレイヤーに公開します。しかし、現在、私はこれを公開できるかどうかわかりません。 SWIG/Libフォルダにshared_ptr.iのインタフェースファイルが含まれていることがわかりました。しかし、コンテンツでは、私はそれを直接使用することができないことを知りました。それは "boost_shared_ptr.i"の後に含まれなければなりません。しかし、 "SWIG/Lib/tcl"フォルダにはboost_shared_ptr.iのようなものはありませんが、私たちはJavaに含めることができる同様のインタフェースを持っています。Boost :: shared_ptr <T>をTcl + SWIGインターフェイスファイルにエクスポーズする方法は?

+0

私は助けることができましたが、私は決して実質的な方法でC++/Tclバインディングを行ったことはなく、確かにSWIGでそれをしていません。 (基本的な型をバインドする方法については少し知っていますが、 'shared_ptr'は何もありません。私は普通のC言語を使っています...) –

+0

TclのパラメータとしてTを公開しようとしていませんか? – AlexK

+0

私は実際にboost :: shared_ptr のハンドルをtclに作成したいと考えています。 –

答えて

0

標準のshared_ptrを使用できませんか?私はstd :: tr1 :: shared_ptrを意味しますか?私は最後のSWIGの全てでブースト/ shared_ptrのための良いサポートがありませんでした試みたときにgccのでは、

#include <tr1/memory> 
+0

私はstd :: tr1 :: shared_ptrを使用することはできません。私のライブラリはJavaとTCLの両方に使用されています。私はすでにJavaですべてを公開しています。 –

+0

さらにMicrosoftはC++ 0xとの互換性に失敗しました。これはWIN XP SP2以降で動作するので、多くのユーザーがいるプロジェクトを作成すると、まだ使用できません。 – ST3

4

する必要があります。 Pythonは最高のカバレッジを持っていました。これが変わったかどうか聞いてみたいと思います。

SWIGの私の経験では、公開する各タイプに対して%templateを使用してテンプレートをインスタンス化する必要があります。