>>143-144
class Hoge
{
 boost::scoped_array<char> member1;
 boost::scoped_array<char> member2;
public:
 Hoge() : member1(new char[100]), member2(new char[100])
 {}
};

としとけば、member2 の new が std::bad_alloc 投げても member1 の
デストラクタが呼ばれて member1 の char[100] も解放されるね。