元ネタ:終了処理をするメンバ関数の違いを吸収してくれるカスタムデリータ - 凹みTips Boost.TTI が利用できるよさげなネタがあったので書いてみました。 [ソース] #include <boost/tti/has_member_function.hpp> BOOST_TTI_HAS_MEMBER_FUNCTION(close) // => has_member_function_close struct custom_deleter{ template<typename T> void operator ()(T* p, typename std::enable_if< has_member_function_close<void (T::*)()>::value >::type* = 0 ) const{ p->close(); delete p; } template<typ