- 125 名前:デフォルトの名無しさん mailto:sage [2014/12/25(木) 21:51:55.82 ID:JhLNRnCp]
- >>122
M$のコンパイラの呼び出し規約の一つ 普通のC関数は_cdeclで、関数呼び出した側が積んだスタックを戻す __stdcallは呼び出された側がretの時に積まれた分のスタックを戻す 呼び出し規約違うのを無理やり呼ぶとスタックが壊れるから別の名前にマングリングされる Win32APIだと #define WINAPI __stdcall ってなってるから、WINAPIで宣言された関数はみんな__stdcall関数になる __stdcallが付けられた関数はdllexportされた時に _関数名@X って名前になるから(Xは引数が消費するスタックのサイズ)、GetProcAddresに渡す名前もそうしなきゃいけない ちなみに、FUNCのtypedefもWINAPI付けたものにしないと多分死ぬよ >>123 俺もそこら辺の細かい実装どうなってたっけと思って調べてみたけど、default_deleteは単純にdeleteする仕様だからvirtual付けないといけないみたい 多分、unique_ptrはshared_ptrと違って、生のポインタを扱うのとパフォーマンスに差が出ないような設計になってるんじゃないかな
|

|