boost::shared_ptrでHMODULEなどを管理する - ベイダー日記 これが動くのは、そもそも、HMODULEが、ポインター型であることを前提としている。HMODULEがポインターであることを隠すために、わざわざHMODULEという名前を使っているというのに。このコードは、ポータビリティに問題があると言える。 unique_ptrならば、こんなことができる。 struct HMODULE_deleter { typedef HMODULE pointer ; void operator () ( HMODULE handle ) { FreeLibrary( handle ) ; } } ; int main() { std::unique_ptr< HMODULE, HMODULE_deleter > handle( LoadLibrary( _T("kernel32.li