ちょっとメモ 以下のようなコードを書いて失敗した。 #include <boost/shared_ptr.hpp> #include <unicode/uclean.h> #include <unicode/ucnv.h> int main() { Uit(&status); // (snip) boost::shared_ptr<UConverter> ucnv(ucnv_open("Shift_JIS", &status), ucnv_close); // (snip) u_cleanup(); } u_cleanup より後に ucnv_close が呼ばれてしまうのが問題。 valgrind で検出 このコード問題があるのに、普通にエラーも何もでないので気が付かない。 valgrind を使ったら、 stil