¿Dónde está el RPP compartido?
Estoy muy 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 el código completo para incluir las cabeceras de shared_ptr
(y funcionando). Simplemente declarando std
, tr1
y <memory>
no está ayudando en absoluto! He descargado aumenta y todo, pero todavía no aparece! ¿Puede alguien 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 que. Tan... también fue porque no estaba claro para mí que shared_ptr es "dependiente de la versión de C++" > > es por eso que no declaré mi entorno > > por lo tanto, probablemente por qué fue tan difícil para mí encontrarlo.
Estoy trabajando en MSVS2008.
[4] EDITAR 2: No se por qué, pero estaba incluyendo [memoria] y [boost/tr1/memoria.hpp] y [boost/tr1/tr1 / memory] mientras se busca en todas partes el shared_ptr.. por supuesto, no podría.Gracias por todas las respuestas.
4 answers
Hay al menos tres lugares donde puedes 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 biblioteca C++ TR1, entonces
std::tr1::shared_ptr
probablemente estará en<memory>
(Microsoft Visual C++) o<tr1/memory>
(libstdc++de g++). Boost también proporciona una implementación TR1 que puede usar.De lo contrario, puede obtener el impulso bibliotecas y utilizar
boost::shared_ptr
, que se puede encontrar en<boost/shared_ptr.hpp>
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-09 03:01:14
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-27 03:02:32
Para VS2008 con la actualización del paquete de características, shared_ptr se puede encontrar en el espacio de nombres std::tr1.
std::tr1::shared_ptr<int> MyIntSmartPtr = new int;
De
Si tiene la ruta de instalación de boost (por ejemplo @ C:\Program Files\Boost\boost_1_40_0
) agregada a la configuración de su IDE:
#include <boost/shared_ptr.hpp>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-27 10:54:31
Si está buscando bor boost's shared_ptr, podría haber encontrado fácilmente la respuesta buscando shared_ptr, siguiendo los enlaces a los documentos, y tirando de un ejemplo completo de trabajo como this.
En cualquier caso, aquí hay un ejemplo de trabajo minimalista completo para usted que acabo de hackear:
#include <boost/shared_ptr.hpp>
struct MyGizmo
{
int n_;
};
int main()
{
boost::shared_ptr<MyGizmo> p(new MyGizmo);
return 0;
}
Para que el #include
encuentre el encabezado, las bibliotecas obviamente deben estar en la ruta de búsqueda. En MSVC, se establece esto en Proyecto Preferencias>Propiedades de configuración > C / C++>Directorios de inclusión adicionales. En mi caso, esto se establece en C:\Program Files (x86)\boost\boost_1_42
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-21 11:36:12