setjmp/longjmp をクラスのデストラクタと一緒に使うとおかしなことおきるみたいですが
http://d.hatena.ne.jp/chiharunpo/20110509/1304942799
常に安全側に自動的になるような仕組みないでしょうか?

普通の関数でも
boost::functionに代入してからいろいろしてるので
setjmp/longjmp
使うの不安だ