windowsで_endthread(_endthreadex)などでスレッド終了させた場合、
そのスレッド内で作成されたオブジェクトのデストラクタが呼ばれないのは、
仕様ですか?

class Hoge{
public:
 Hoge( int n_ ):
 n_ptr( new int(n_) ){
 }

 ~Hoge(){
 std::cout << "~Hoge" << std::endl;
 }
 boost::scoped_ptr<int> n_ptr;
};

beginthreadexで呼び出す
unsigned int __stdcall thread_test( void* data_ ){
 Hoge hoge(100);
 _endthreadex( 0 );
 return 0;
}

デストラクタが呼ばれれない・・・、メモリリークしやがる・・・。どうすればいいですかね?
別なところからこのスレッド終了させる場合に_endthreadexつかえないのは不便・・・。