2011-10-07 6 views
7

Tôi đã chơi xung quanh với một số thành phần Boost, và chỉ có một tôi thấy một nhu cầu trực tiếp cho dự án tôi đang làm việc trên là boost::shared_ptr.Làm cách nào để lấy một phần tử ra khỏi thư viện tăng cường (ví dụ: shared_pointer)?

Thật khó để chỉ bao gồm các tệp được yêu cầu cho shared_ptr hoặc ít nhất chỉ bao gồm các tệp cho thư mục Boost smart_ptr trong dự án của tôi? Họ dường như có một số phụ thuộc bên ngoài trên các phần khác của Boost - nhưng tôi con số có một cách dễ dàng để chỉ sử dụng một số thành phần của thư viện Boost và tôi đang thiếu nó.

Nếu bạn có thể cho tôi biết những phần nào tôi cần hoặc chỉ cho tôi một hướng dẫn hay, tôi sẽ biết ơn nhất!

+0

Nó là một chút không rõ ràng: Bạn có muốn sao chép các bộ phận của tăng cho dự án của bạn? Tại sao? – UncleBens

+3

@UncleBens: Bởi vì Boost là một điều khổng lồ và rất nhiều người không thích tải những thứ khổng lồ. –

Trả lời

10

Bạn có thể sử dụng công cụ bcp để chỉ trích xuất tiêu đề bạn muốn.

bcp shared_ptr /foo 

này sẽ copy shared_ptr và tất cả phụ thuộc vào thư mục foo

+0

Neat, tôi đã không mong đợi nó được dễ dàng :) Cảm ơn người đàn ông. –

-3

Bạn chỉ có thể bao gồm các tiêu đề shared_ptr từ tăng như

#include <boost/shared_ptr.hpp> 

cách nhìn vào một ví dụ cơ bản here hoặc để biết thêm ví dụ here

bạn có thể bao gồm hầu hết các phần của tăng lib theo cách này và nó gần như không còn phụ thuộc nữa (chỉ dành cho một số thư viện phức tạp hơn)

+0

Vâng, trang bcp cho biết sẽ tìm thấy 274 phụ thuộc tiêu đề cho 'boost/shared_ptr.hpp' - hầu hết không cần thiết cho một trình biên dịch với một cấu hình. Tôi không nghĩ rằng đó là dễ dàng để trích xuất các thư viện từ tăng (có vẻ như OP muốn giữ shared_ptr và vứt bỏ phần còn lại). – UncleBens

+0

@UncleBens Yeah, đó là điều tôi muốn làm nhất - tôi đánh giá cao đề xuất đó! :) –

+0

Bạn hiểu nhầm câu hỏi, không phải là "Làm cách nào để sử dụng #include trên tệp tăng cường" nhưng "Làm cách nào để xác định tệp tăng nào tôi cần phân phối cho #include để hoạt động? " –