トップページ > プログラム > 2016年12月05日 > soEx3sdp

書き込み順位&時間帯一覧

4 位/222 ID中時間01234567891011121314151617181920212223Total
書き込み数2000000010131000000000008



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part128 [無断転載禁止]©2ch.net

書き込みレス一覧

C++相談室 part128 [無断転載禁止]©2ch.net
264 :デフォルトの名無しさん[]:2016/12/05(月) 00:23:17.61 ID:soEx3sdp
>>263
特定のアロケーター使って欲しい場合のためのstd::allocate_shared
C++相談室 part128 [無断転載禁止]©2ch.net
266 :デフォルトの名無しさん[]:2016/12/05(月) 00:43:42.73 ID:soEx3sdp
>>265
std::listなどのコンテナ関係が警告なしに無視するのは許せるの?
逆に言えば標準ライブラリの中でクラスのnew deleteがあればそれを使うなんてもの殆ど無いよ
C++相談室 part128 [無断転載禁止]©2ch.net
270 :デフォルトの名無しさん[]:2016/12/05(月) 08:03:39.13 ID:soEx3sdp
>>267
何のためにクラスのnew deleteをオーバーロードしてるのか知らんけどスタックに構築するのはいいの?
std::list<T> a;って出来るのはいいの?
それらが良くてmake_shared<T>()がダメな理由が解らないよ。
C++相談室 part128 [無断転載禁止]©2ch.net
272 :デフォルトの名無しさん[]:2016/12/05(月) 10:16:56.47 ID:soEx3sdp
>>271
new deleteはオーバーライド出来ません

gdiplusは恐らくそのクラスをgdiplusのdllの中でnewしてポインタ返しユーザーにdeleteさせるような設計になってるからdllの中のnewとアプリケーションのdeleteが不一致になるのを防ぐ為だと思う。
だからアプリケーションコードの中で生成、削除する分には必ずしもオーバーロードされてるnew deleteを使う必要はないんじゃねえかな
C++相談室 part128 [無断転載禁止]©2ch.net
275 :デフォルトの名無しさん[]:2016/12/05(月) 11:20:32.71 ID:soEx3sdp
>>274
触っちゃダメな人だよ
C++相談室 part128 [無断転載禁止]©2ch.net
277 :デフォルトの名無しさん[]:2016/12/05(月) 11:44:07.18 ID:soEx3sdp
公式のexampleでもスタックに構築してる事から構築方法に特に制限は無い、(もし制限があるなら記述するか、factory関数内でのみこう)
C++相談室 part128 [無断転載禁止]©2ch.net
278 :デフォルトの名無しさん[]:2016/12/05(月) 11:51:24.58 ID:soEx3sdp
途中で書きこんでしまった。
通じる人に向けて書こうと思ったけど面倒くさくなったからいいや。
C++相談室 part128 [無断転載禁止]©2ch.net
279 :デフォルトの名無しさん[]:2016/12/05(月) 12:02:47.33 ID:soEx3sdp
C++とdllとnew deleteの関係性について理解してる人には説明の余地もないけど、DLLの中でnewっていうのは所謂factoryメソッドのようなもの。gdiplusならBitmap::FromFileとか中で構築した物の生ポインタを返してるね。
それをユーザーコードでdeleteするとnew deleteをオーバーロードしていなけれはnewはDLLの中でリンクされているライブラリのメモリ確保が呼ばれる。
deleteはアプリケーションでリンクされているライブラリのメモリ解放が呼ばれる。

自分の知識の無さを棚に上げてデタラメ呼ばわりしたことを恥じて貰うために詳細に説明してあげたよ。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。