スマートポインタのscoped_ptr
スコープ内で宣言してスコープ外に出ると自動破棄される
main.cpp
#include <boost/scoped_ptr.hpp> #include <string> #include <iostream> using namespace std; using namespace boost; int main(int argc, char* argv[]) { scoped_ptr<string> p(new string("scoped ptrを使う")); if(p) cout << *p << endl; size_t i = p->size(); cout << "size:" << i << endl; *p = "ポインタのように値を書き換え"; cout << *p << endl; return 0; } // pとstd::stringは自動破棄される
実行
./main
scoped ptrを使う size:19 ポインタのように値を書き換え
SRC = main.cpp DST = main prefix=/opt/local INCPATH=/opt/local/include LIBPATH=/opt/local/lib CC=g++ -O INCLUDE=-I$(INCPATH)/boost all: $(CC) $(SRC) -o $(DST) $(INCLUDE)