2013-05-13 17 views
10

Tôi muốn để lộ boost::shared_Ptr tới lớp Tcl bằng SWIG. nhưng hiện tại tôi không biết tôi có thể phơi bày điều này. Tôi phát hiện ra rằng thư mục SWIG/Lib chứa tệp giao diện cho shared_ptr.i. Nhưng trong nội dung tôi phát hiện ra rằng tôi không thể sử dụng nó trực tiếp. Nó phải được bao gồm sau "boost_shared_ptr.i". Nhưng không có gì giống như boost_shared_ptr.i trong "SWIG/Lib/tcl" thư mục nhưng chúng tôi có giao diện tương tự mà tôi có thể bao gồm trong Java.Làm cách nào để hiển thị Boost :: shared_ptr <T> vào tệp giao diện Tcl + SWIG?

+0

Chúc tôi có thể giúp đỡ, nhưng tôi chưa bao giờ thực hiện C++/Tcl ràng buộc một cách thực sự, và chắc chắn đã không thực hiện nó với SWIG. (Tôi biết một chút về làm thế nào để ràng buộc các loại cơ bản, nhưng 'shared_ptr'? Không có ý tưởng cả. Tôi làm việc nhiều hơn với đồng bằng cũ C ...) –

+0

Bạn không cố gắng để lộ T như một tham số để Tcl, là bạn? – AlexK

+0

Tôi thực sự muốn tạo các chốt để tăng :: shared_ptr trong tcl. –

Trả lời

0

Bạn không thể sử dụng shared_ptr chuẩn? Ý tôi là std :: tr1 :: shared_ptr? Trong gcc, bạn cần phải

#include <tr1/memory> 
+0

Tôi không thể sử dụng std :: tr1 :: shared_ptr, vì thư viện của tôi sẽ được sử dụng cho cả Java và TCL và tôi đã tiếp xúc với mọi thứ trên Java và dường như nó hoạt động tốt ở đó. –

+0

Microsoft bị lỗi gì với khả năng tương thích C++ 0x. Nó hoạt động trên WIN XP SP2 hoặc sau này, vì vậy nếu bạn thực hiện dự án, sẽ có nhiều người dùng, bạn không thể sử dụng nó. – ST3

4

Khi tôi thử lần cuối không có hỗ trợ tốt cho tăng/shared_ptr trong tất cả SWIG. Python có mức độ phù hợp tốt nhất. Tôi muốn nghe nếu điều này đã thay đổi.

Theo như kinh nghiệm khác của tôi với SWIG, bạn cũng cần phải tạo mẫu bằng cách sử dụng% template cho từng loại mà bạn muốn hiển thị.

Các vấn đề liên quan