- 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 - なるほど、たぶん理解しました。
キーは演算子だったんですね…… ということは最初の質問も大丈夫なのか。 ありがとうございました。
|