次のように、関数がスコープ外になったときにWSACleanup()が呼び出されるように、boost::shared_ptrを使用したいと思います。
void DoSomething() {
WSAStartup(...);
boost::shared_ptr<void> WSACleaner(static_cast<void*>(0), WSACleanup);
}
これはコンパイルされません、
Error 1 error C2197: 'int (__stdcall *)(void)' : too many arguments for call C:\projects\svn-5.3\ESA\Common\include\boost\detail\shared_count.hpp 116
何かご意見は?