Estoy tan frustrado en este momento después de varias horas tratando de encontrar dónde se encuentra shared_ptr. Ninguno de los ejemplos que veo muestra un código completo para incluir los encabezados shared_ptr
(y en funcionamiento). Simplemente diciendo std
, ¡ tr1
y <memory>
no está ayudando en absoluto! ¡He descargado potenciadores y todo, pero aún no aparece! ¿Alguien puede ayudarme diciéndome exactamente dónde encontrarlo?
¡Gracias por dejarme desahogar mis frustraciones!
EDITAR: Veo que mi título ha sido cambiado. Lo siento por eso. Entonces ... también fue porque no estaba claro para mí que shared_ptr es "dependiente de la versión C ++" -> por eso no indiqué mi entorno -> por lo tanto, probablemente por qué fue tan difícil para mí encontrarlo.
Estoy trabajando en MSVS2008.
EDIT 2: No sé por qué, pero estaba incluyendo [memory] y [boost / tr1 / memory.hpp] y [boost / tr1 / tr1 / memory] mientras buscaba en todas partes el shared_ptr ... por supuesto, no pude 't.
Gracias por todas las respuestas.
shared_ptr
no es parte del estándar. Sin embargo, es tan común que algunos lo tratarán como estándar aunque aún no lo esté.Respuestas:
Hay al menos tres lugares donde puede encontrar
shared_ptr
:Si su implementación de C ++ admite C ++ 11 (o al menos C ++ 11
shared_ptr
), entoncesstd::shared_ptr
se definirá en<memory>
.Si su implementación de C ++ admite las extensiones de la biblioteca C ++ TR1,
std::tr1::shared_ptr
probablemente estará en<memory>
(Microsoft Visual C ++) o<tr1/memory>
(g ++ 's libstdc ++). Boost también proporciona una implementación de TR1 que puede utilizar.De lo contrario, puede obtener las bibliotecas de Boost y su uso
boost::shared_ptr
, que se pueden encontrar en<boost/shared_ptr.hpp>
.fuente
tr1
.shared_ptr
todavía estaba en untr1
espacio de nombres. Tiene alguna idea sobre esto?-std=c++11
?Impulsar el comienzo
Si desea usarlo desde Boost TR1 en su lugar
Shared_ptr Ejemplo
fuente
para VS2008 con la actualización del paquete de características, shared_ptr se puede encontrar en el espacio de nombres std :: tr1.
de
si se
C:\Program Files\Boost\boost_1_40_0
agregó la ruta de instalación de impulso (por ejemplo @ ) a la configuración de su IDE:fuente
Si estás por buscar bor impulso 's shared_ptr , que podría haber encontrado fácilmente la respuesta por googlear shared_ptr , siguiendo los enlaces a los documentos, y tirando hacia arriba de un ejemplo de trabajo completo como este .
En cualquier caso, aquí hay un ejemplo de trabajo completo minimalista para ti que acabo de piratear:
Para
#include
que encuentre el encabezado, las bibliotecas obviamente deben estar en la ruta de búsqueda. En MSVC, establezca esto en Configuración del proyecto> Propiedades de configuración> C / C ++> Directorios de inclusión adicionales. En mi caso, esto está configurado paraC:\Program Files (x86)\boost\boost_1_42
fuente