2010-05-01 7 views
0

Я ищу независимую реализацию boost/tr1 shared_ptr, weak_ptr и enable_shared_from_this.Есть ли независимая от boost-версия версия boost/tr1 shared_ptr

мне нужно:

  • Boost, независимое очень небольшое выполнение этих функций.
  • мне нужна поддержка только современных компиляторов как GCC-4.x, MSVC-2008, Intel не такие вещи, как MSVC6 или НКУ-3,3
  • мне нужно, чтобы получить лицензию в соответствии с не-копилефт LGPL совместимой лицензией, как усиление/Mit/3-оговорка BSD.

Поэтому я могу включить его в свою библиотеку.

Примечание - это довольно трудно извлечь из shared_ptr импульс, по крайней мере, BCP дает около 324 файлов ...

+0

GCC-4.x и MSVC-2008 предоставляют как tr1 :: shared_ptr. Я не знаю для intel. –

+0

Зачем вам нужна реализация SMALL? Можете ли вы включить источники с BSL? Почему бы не включить всю версию Boost? –

ответ

3

Я извлек shared_ptr из Boost, чтобы использовать его отдельно, и было определенно менее 300 файлов. Это было 3 года назад, однако, возможно, все изменилось (возможно, в настоящее время в папке с конфигурацией больше файлов?). Что мне нужно для shared_ptr был:

  • assert.hpp
  • checked_delete.hpp
  • throw_exception.hpp
  • config.hpp и конфигурационный каталог
  • деталь/bad_weak_ptr.hpp
  • подробно /interlocked.hpp
  • detail/shared_count.hpp
  • detail/sp_counted_base.hpp
  • деталь/sp_counted_base_w32.hpp
  • деталь/sp_counted_impl.hpp
  • деталь/workaround.hpp
  • и, наконец, сам shared_ptr.hpp.

Я не думаю, что weak_ptr и enable_shared_from_this добавят к нему много файлов.

1

Последние версии GCC включают в себя реализацию TR1.

#include <tr1/memory> 

Это дает вам все три вещи вы упоминаете, в std::tr1 пространства имен.

+0

-1 OP хочет, чтобы портативная версия работала на GCC-4.x, MSVC-2008, Intel Поскольку какая-то версия этого компилятора не предоставляет этот файл, ему нужен boost/tr1. –

+1

@ Висенте, где это -1, ты сказал, что ты бросил? –

+0

Я имел в виду, что ответ не отвечает на вопрос. –

1

BCP работает на уровне компонентов, поэтому любая зависимость между компонентами приводит к взрыву количества файлов.

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

Это должно сократить количество файлов, за счет некоторых ваших расходов.

Было бы явно обязательным, если бы BCP смог сделать это за вас: работал на уровне файла, а не на уровне компонента, и смог позаботиться об условной компиляции.

Смежные вопросы