トップページ > プログラム > 2015年06月20日 > aEgncsrl

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

4 位/216 ID中時間01234567891011121314151617181920212223Total
書き込み数20000000000001002220100010



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part117 [転載禁止]©2ch.net
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net

書き込みレス一覧

C++相談室 part117 [転載禁止]©2ch.net
501 :デフォルトの名無しさん[sage]:2015/06/20(土) 00:25:42.13 ID:aEgncsrl
constが要らないとは……
凄まじいまでの把握能力とそれを駆使できる頭があるか、痛い目にあったことがないかだな。
C++相談室 part117 [転載禁止]©2ch.net
507 :デフォルトの名無しさん[sage]:2015/06/20(土) 00:41:28.33 ID:aEgncsrl
ソース把握の補助は当然というか、二次的なメリットであって、もっとあるだろうconst……
constないC++とか黒魔術どころか禁術になるとおもうわ……
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
256 :デフォルトの名無しさん[sage]:2015/06/20(土) 13:09:32.75 ID:aEgncsrl
あの、>>234だれか助けてください。無理なら他所で質問したいので、マルチにならないようケジメつけたいです。
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
258 :デフォルトの名無しさん[sage]:2015/06/20(土) 16:01:12.61 ID:aEgncsrl
>>257
どの処理の話でしょうか?
void allocator::destroy(_Ty*)でしたら、自分は配置newしてるvoid allocator::construct関連用の関数だとおもいます(だから関係ない話だとおもいます)。
::operator deleteの話でしたらごめんなさい。その場合は1つ、質問があるのですが、
「デストラクタを呼び出してるから大丈夫」
とは、_count要素個分のデストラクタを呼び出してるということですよね?すると今度はdelete[]が謎ですね……
見た感じ、new[]はRTCCALLBACKというマクロ(定義が別にあるみたいで詳細不明)でnewのサイズを記憶しているみたいなのですが。
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
261 :デフォルトの名無しさん[sage]:2015/06/20(土) 16:46:12.46 ID:aEgncsrl
それは理解してる(はず)んですが、質問しているのは、
「配列確保と書いてある処理に、::operator new[]()ではなく、::operator new()を使ってメモリ確保してるのは大丈夫なんでしょうか」
ということなんです。そして、疑問に思った理由は、new[]の方は、いま提示してくださった、
「個別にデストラクタ呼んで〜」を実現するために、確保したメモリの近くにこっそり、N * sizeof(type)の N を記憶配置する処理が、newに加わったものと聞いているからです。
delete[]は、この N の書かれたメモリを読んできちんとデストラクタを呼ぶはずです。

そして今newaop.cppを読んでいるのですが、
void operator new[](size_t)
はどうやら、operator new()に処理を丸投げしてるようです。
なので、言語仕様に沿うためにnew[]を作っただけで、実はマイクロソフトのnew()は万能かもしれないという予想ができました。
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
264 :デフォルトの名無しさん[sage]:2015/06/20(土) 17:26:22.91 ID:aEgncsrl
もういいです……
newとnew[]の違いが核なのに共通処理であるmallocよんでるとか、ちゃんとsizeof()ってかいてあるのにオブジェクトのサイズが違うとか的外れすぎます……
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
266 :デフォルトの名無しさん[sage]:2015/06/20(土) 17:47:35.83 ID:aEgncsrl
>>261 下段に書いてあります。それでダメならご自身でnewaop.cppを読んでください。
もちろん、visual C++があるから回答されたんですよね?
C++相談室 part117 [転載禁止]©2ch.net
553 :デフォルトの名無しさん[sage]:2015/06/20(土) 18:19:52.91 ID:aEgncsrl
インターフェイスとしてのconstと、定数としてのconstが入り交じって議論してるから、話がこじれている気がする。あと要らない派もコンパイル時評価で代用するって言ってるのもポイント。

確かに単なる定数としてならconstは無くてもいい、constexprの方がいいと思う。
でもインターフェイスとしてのconstは絶対必要だと思う。

ひとくくりに「constいらない」って言われたらそりゃ否定するよ。
C++相談室 part117 [転載禁止]©2ch.net
559 :デフォルトの名無しさん[sage]:2015/06/20(土) 18:56:55.48 ID:aEgncsrl
>>557
execvは分からないけど、それらの言語はポインタがないとか、ガベージコレクタあるとかで安全だからでは。
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
271 :デフォルトの名無しさん[sage]:2015/06/20(土) 20:51:25.30 ID:aEgncsrl
なるほど、たぶん理解しました。
キーは演算子だったんですね……
ということは最初の質問も大丈夫なのか。

ありがとうございました。


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