Saya sangat frustrasi sekarang setelah beberapa jam mencoba menemukan di mana shared_ptr berada. Tak satu pun dari contoh yang saya lihat menunjukkan kode lengkap untuk menyertakan header shared_ptr
(dan berfungsi). Cukup menyatakan std
, tr1
dan <memory>
tidak membantu sama sekali! Saya telah mengunduh penguat dan semuanya tetapi tetap tidak muncul! Dapatkah seseorang membantu saya dengan memberi tahu di mana tepatnya menemukannya?
Terima kasih telah membiarkan saya melampiaskan frustrasi saya!
EDIT: Saya melihat judul saya telah diubah. Maaf soal itu. Jadi ... itu juga karena tidak jelas bagi saya bahwa shared_ptr adalah "C ++ version dependent" -> itulah mengapa saya tidak menyatakan lingkungan saya -> oleh karena itu mungkin mengapa sangat sulit bagi saya untuk menemukannya.
Saya sedang mengerjakan MSVS2008.
EDIT 2: Saya tidak tahu mengapa, tetapi saya menyertakan [memory] dan [boost / tr1 / memory.hpp] dan [boost / tr1 / tr1 / memory] sambil mencari di mana-mana untuk shared_ptr .. tentu saja, saya tidak bisa t.
Terima kasih atas semua tanggapannya.
shared_ptr
ini bukan bagian dari standar. Ini sangat umum sehingga beberapa orang akan menganggapnya sebagai standar meskipun belum ada.Jawaban:
Setidaknya ada tiga tempat di mana Anda dapat menemukan
shared_ptr
:Jika implementasi C ++ Anda mendukung C ++ 11 (atau setidaknya C ++ 11
shared_ptr
), makastd::shared_ptr
akan ditentukan di<memory>
.Jika implementasi C ++ Anda mendukung ekstensi pustaka C ++ TR1,
std::tr1::shared_ptr
kemungkinan besar akan berada di<memory>
(Microsoft Visual C ++) atau<tr1/memory>
(g ++'s libstdc ++). Boost juga menyediakan implementasi TR1 yang dapat Anda gunakan.Jika tidak, Anda dapat memperoleh pustaka dan penggunaan Boost
boost::shared_ptr
, yang dapat ditemukan di<boost/shared_ptr.hpp>
.sumber
tr1
.shared_ptr
masih duduk ditr1
namespace. Ada pemikiran tentang ini?-std=c++11
?Tingkatkan Memulai
Jika Anda ingin menggunakannya dari Boost TR1
Contoh shared_ptr
sumber
untuk VS2008 dengan pembaruan paket fitur, shared_ptr dapat ditemukan di namespace std :: tr1.
dari
jika Anda telah meningkatkan jalur instalasi (misalnya @
C:\Program Files\Boost\boost_1_40_0
) ditambahkan ke pengaturan IDE Anda:sumber
Jika your'e mencari bor dorongan 's shared_ptr , Anda bisa dengan mudah menemukan jawaban dengan googling shared_ptr , berikut link ke dokumen, dan menarik sebuah contoh kerja yang lengkap seperti ini .
Bagaimanapun, berikut adalah contoh kerja lengkap minimalis untuk Anda yang baru saja saya retas:
Untuk
#include
menemukan tajuk, perpustakaan jelas harus berada di jalur pencarian. Di MSVC, Anda mengatur ini di Pengaturan Proyek> Properti Konfigurasi> C / C ++> Direktori Sertakan Tambahan. Dalam kasus saya, ini diatur keC:\Program Files (x86)\boost\boost_1_42
sumber