/
最近
.rdf
追記
編集
設定
本棚
翌日へ
前日へ
脳log
[20140202]
2014年02月02日 (日)
[C++]「
まずは用語の定義みたいなものを。通常の、new Hoge();の形式で呼び出すoperator newをプレースメントnew、それに対応して呼び出されるべきoperator deleteをプレースメントdeleteと呼びます。そうでないものは非プレースメント。
」■えっと、逆だと思ってたんだけど……。左右、上下、陰陽、正負、どの組にも本質的な違いはなく、placement~だとか非placement~だとかは一方をもう一方と区別することのみを目的として与えられた名前だから、ここでは(諸君らの持ってる知識とは違うかもしれないけど)こういう定義でやっていくぜ、という宣言なのだろうか。■「
A template instance is never a usual deallocation function, regardless of its signature. (テンプレートを実体化したoperator deleteは、それがどんなシグネチャーを持っていたとしても[※つまり、テンプレートを実体化結果として引数がvoid*のみやvoid*, std::size_tになったとしても]、決してプレースメントdeleteにはなり得ない)
」■ここでは "usual deallocation function"がプレースメントdeleteと訳されてるけど、直前の引用では "usual (non-placement) deallocation function"と"usual deallocation function"を非プレースメントdeleteと訳してるんだよね。プレースメントdeleteの話はしてないと思うのだけど。■非プレースメントdeleteを選択するときの柔軟性(1引数版がないときに 2引数版を採用)がプレースメントdeleteの選択と競合することがあって……と、理解を諦めるほど非常に面倒くさいので、手を出してはいけないことがよくわかりました。
翌日へ
前日へ