Как я могу взять один элемент из библиотеки ускорения (например, shared_pointer)?

Я экспериментировал с некоторыми компонентами Boost, и единственное, в чем я вижу прямую потребность в проекте, над которым я работаю, - это boost::shared_ptr.

Было бы сложно просто включить необходимые файлы для shared_ptr или хотя бы просто включить файлы для каталога Boost smart_ptr в мой проект? Кажется, что у них есть некоторые внешние зависимости от других частей Boost, но я полагаю, что есть простой способ просто использовать определенные компоненты библиотеки Boost, и мне его не хватает.

Если вы скажете мне, какие части мне нужны, или укажете мне на хороший учебник, я был бы очень благодарен!


person John Humphreys    schedule 07.10.2011    source источник
comment
Немного непонятно: вы хотите скопировать части буста для своего проекта? Почему?   -  person UncleBens    schedule 08.10.2011
comment
@UncleBens: Потому что Boost - это гигантская вещь, и многим людям не нравится скачивать гигантские вещи.   -  person Nicol Bolas    schedule 08.10.2011


Ответы (2)


Вы можете использовать инструмент bcp, чтобы извлечь только нужный заголовок.

bcp shared_ptr /foo

Это копирует shared_ptr и все зависимости в каталог foo

person Praetorian    schedule 07.10.2011

Вы можете включать только заголовки shared_ptr из такого повышения

#include <boost/shared_ptr.hpp>

посмотрите на базовый пример здесь или подробнее примеры здесь

вы можете включить почти все части библиотеки boost таким образом, и она почти не имеет дополнительных зависимостей (только для некоторых более сложных библиотек)

person ben    schedule 07.10.2011
comment
Что ж, на странице bcp говорится, что она найдет 274 зависимости заголовков для boost/shared_ptr.hpp - большинство из них не требуется для одного компилятора с одной конфигурацией. Я не думаю, что так легко извлечь библиотеки из boost (похоже, OP хочет сохранить shared_ptr и выбросить остальные). - person UncleBens; 08.10.2011
comment
@UncleBens Да, это то, что я хотел сделать, но я ценю это предложение! :) - person John Humphreys; 08.10.2011
comment
Вы неправильно понимаете вопрос, который заключается не в том, как использовать #include в файлах повышения, а в том, как определить, какие файлы повышения качества мне нужно распространить для работы #include ‹boost / shared_ptr.hpp›? - person Tom Swirly; 12.04.2013