Я так расстроен прямо сейчас, после нескольких часов попыток найти, где находится shared_ptr. Ни в одном из примеров, которые я вижу, не показан полный код, включающий заголовки shared_ptr
(и работающий). Просто констатировать std
, tr1
а <memory>
совсем не помогает! Я скачал бусты и все такое, но он все еще не появляется! Может ли кто-нибудь помочь мне, точно указав, где его найти?
Спасибо, что позволили мне выразить свое разочарование!
РЕДАКТИРОВАТЬ: я вижу, что мое название было изменено. Извини за это. Итак ... это было также потому, что мне было непонятно, что shared_ptr "зависит от версии C ++" -> поэтому я не указал свою среду -> поэтому, вероятно, почему мне было так сложно его найти.
Я работаю над MSVS2008.
РЕДАКТИРОВАТЬ 2: Я не знаю почему, но я включал [memory] и [boost / tr1 / memory.hpp] и [boost / tr1 / tr1 / memory], ища повсюду shared_ptr .. конечно, я не мог т.
Спасибо за все ответы.
shared_ptr
это не является частью стандарта. Однако это настолько распространено, что некоторые будут рассматривать его как стандарт, даже если его еще нет.Ответы:
Есть как минимум три места, где вы можете найти
shared_ptr
:Если ваша реализация C ++ поддерживает C ++ 11 (или, по крайней мере, C ++ 11
shared_ptr
), тоstd::shared_ptr
она будет определена в<memory>
.Если ваша реализация C ++ поддерживает расширения библиотеки C ++ TR1, то
std::tr1::shared_ptr
, вероятно, будет в<memory>
(Microsoft Visual C ++) или<tr1/memory>
(g ++ libstdc ++). Boost также предоставляет реализацию TR1, которую вы можете использовать.В противном случае вы можете получить библиотеки Boost и использовать их
boost::shared_ptr
, которые можно найти в<boost/shared_ptr.hpp>
.источник
tr1
.shared_ptr
все еще находится вtr1
пространстве имен. Есть мысли по этому поводу?-std=c++11
?Boost Начало работы
Если вы хотите использовать его вместо Boost TR1
shared_ptr Пример
источник
для VS2008 с обновлением пакета функций shared_ptr можно найти в пространстве имен std :: tr1.
из
если
C:\Program Files\Boost\boost_1_40_0
в настройки IDE был добавлен путь ускоренной установки (например, @ ):источник
Если your'e ищет БОР подталкивания «s shared_ptr , вы могли бы легко найти ответ на прибегая к помощи shared_ptr , после ссылки на документы и подтягивания полного рабочего примера , такие как это .
В любом случае, вот вам минималистичный полный рабочий пример, который я только что взломал:
#include
Очевидно, что для того, чтобы найти заголовок, библиотеки должны находиться в пути поиска. В MSVC вы устанавливаете это в Параметры проекта> Свойства конфигурации> C / C ++> Дополнительные каталоги включения. В моем случае это установлено наC:\Program Files (x86)\boost\boost_1_42
источник