スマートポインタの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
ポインタのように値を書き換え


Makefile

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)