1 名前:デフォルトの名無しさん [2018/08/27(月) 16:02:00.94 ID:vY3QDx2y0.net] 次スレを立てる時は本文の1行目に以下を追加して下さい。 !extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part137 https://mevius.5ch.net/test/read.cgi/tech/1531558382/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.103【環境依存OK】 https://mevius.5ch.net/test/read.cgi/tech/1530384293/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) ----- テンプレ ここまで ----- VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
438 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 22:10:23.49 ID:YK4Q2JFR0.net] >>426 よしよし、今日は素直でよろしい。
439 名前:デフォルトの名無しさん [2018/09/14(金) 22:11:29.39 ID:fXySkelb0.net] で、オマエは自分の頭が とてつもなく頭悪いのは自覚してんか ゴミでクズな人間であることも自覚できてんのか
440 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 22:12:33.95 ID:YK4Q2JFR0.net] さすがにもうワンパターンで飽きてきた。 もっと違う煽り方考えてよ。 ツンデレ的なのはどう?
441 名前:デフォルトの名無しさん [2018/09/14(金) 22:14:52.54 ID:fXySkelb0.net] 煽り? まず事実だからな バカは自分がバカである自覚がない だからバカが直らない すべてゴミでクズな人間性の問題 ゴミクズには内省というもんがない
442 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 22:18:12.66 ID:YK4Q2JFR0.net] 最初は褒めて褒めて褒めちぎった上でミスリードを誘い、その上でボロクソに貶すとかどう? さすがに皆そのやり方は飽き飽きしてるよ。
443 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 22:34:27.68 ID:5DPUkElZ0.net] 子猫がかわいくて甘噛みされたらちょっと叩いたあとで頭なでなでしてたら 大人になっても強くかむようになって困ったのを思い出した なんだかなあ
444 名前:デフォルトの名無しさん [2018/09/15(土) 00:40:17.11 ID:KIanXBkQ0.net] オレはこんなことはしてないからな タカイ ∧_∧ タカーイ m⊂(´・ω・)⊃ ⊂c ノ__ ノ /⌒ヽ | .| | .| /⌒ヽ ( ^ω^) i i二 .ノ _( ^ω^) il| 死ね (´ 二二二 ノ (´ \ \|il |il il| / /: / \. \ノ\. \il| |il| i===ロ==/ i===ロ== ヘ. \. i|!l !l\il| ノ:::::::::::::::::ヽ ノ:::::::::::::::::ヽ \ ヽη /')/') /:::::::::::へ:::::::::ヽ /:::::::::::へ:::::::::ヽ ヽ_,,..) / /::::::_/ \:::::::) /::::::_/ \:::::::) ) ( / / /::_ '´ |::::| /::_ '´ |::::| ⊂(v )⊃ レ しつ レ しつ`) \ 〆 (´ ̄ /⌒Y⌒ヽ ただの被害妄想 オレは事実を書き込んでるだけだからな まず事実が事実であることを自覚するところから
445 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 01:10:27.96 ID:FCP8vuXka.net] バイナリファイルの読み書きはfstreamとFILEどちらがオススメですか?
446 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 01:53:04.57 ID:wlkSFfZ20.net] #include <iostream> is Forbidden
447 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 04:03:10.64 ID:x4qTic2YM.net] FILE
448 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 06:14:52.60 ID:/OsufeBT0.net] >>407 を虚心坦懐に読めば 「#defineじゃ定数値しか作れんのだから変数にする以外ない」 という身も蓋もない答えもありうるわな。 さすがにそんな揚げ足取りをする人はいないみたいだけど。 プログラム全体で参照する定数値をconstのグローバル変数にするか #defineにするか、なら一般的にはconst変数の方が好まれるかな。 const変数の利点と言うより、#defineの弊害を避けるためって理由で。 その定数が整数値なら enum class も候補に入れてくれ。 static_castが面倒臭いかも知れんけど。
449 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 08:40:54.56 ID:8TAknpK9d.net] ここまでconstexpr1つもなしなのはみんな意図的?
450 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 09:11:50.04 ID:pVwVWDM8M.net] >>439 つ 408
451 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 09:12:10.24 ID:hHXkfIbs0.net] >>439 >>408
452 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 09:39:05.72 ID:u2jcQID60.net] 整数の定数くらいならconstexpr付けても付けてなくても大して変わらなくない? const int n = 42; と constexpr const int n = 42; って何が違うの どっちも定数式文脈で使えるでしょ
453 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 10:09:16.49 ID:8TAknpK9d.net] >>440 >>441 節穴だった申し訳
454 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 10:28:10.96 ID:wlkSFfZ20.net] constexpってクソださい仕様だよな 勝手に推論して最適化しとけや
455 名前:デフォルトの名無しさん [2018/09/15(土) 11:23:26.53 ID:oMwX4DqWa.net] >>438 関連性のある定数群をまとめる為にはスコープがあるenum classはいいんだけど、 フラグとして使うのが難しいのがちょっと難点 enum class PNG_COLOR_MASK: uint8_t{ GRAY = 0b000, PALETTE = 0b001, RGB = 0b010, ALPHA = 0b100 } enum class PNG_COLOR_TYPE: uint8_t{ GRAYSCALE = PNG_COLOR_MASK::GRAY,//できない RGBA = PNG_COLOR_MASK::RGB | PNG_COLOR_MASK::ALPHA//できない }
456 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 14:56:24.44 ID:u2jcQID60.net] フラグとして使うならoperator|と&をオーバーロードするのが良いけど面倒だね PNG_COLOR_MASK operator|(PNG_COLOR_MASK e1, PNG_COLOR_MASK e2) { using u_t = typename std::underlying_type<PNG_COLOR_MASK>::type; return PNG_COLOR_MASK((u_t)e1 | (u_t)e2); }
457 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 15:34:42.86 ID:oMwX4DqWa.net] ここまでやって更にstatic_castも必要となるという。
458 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 16:32:07.11 ID:I8Ewbo070.net] >>444 むしろ俺はコンパイラでやらずビルドシステムで対応すべきことだと思っているが。 なんでもコンパイラに押し込もうとする悪しき風習に思う。
459 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 19:18:14.78 ID:XFoW6siK0.net] fstreamでも結局writeするのでFILEと比較して都合のいい方を選べばいいよ。
460 名前:438 mailto:sage [2018/09/15(土) 19:36:37.14 ID:/OsufeBT0.net] enum class はスコープを限定できる代わりに、個別の型として ガチガチに保護されるせいで数値として使いにくい欠点はあるね。 namespace PNG_COLOR_MASK { enum { GRAY = 0b000, PALETTE = 0b001, RGB = 0b010, ALPHA = 0b100, }; } int grayscale = PNG_COLOR_MASK::GRAY; int rgba = PNG_COLOR_MASK::RGB | PNG_COLOR_MASK::ALPHA; こんな感じにnamespaceで名前なしのenumを囲むか。 素直にconstexprを使えばいいんだけど、C++11以前でも可というニッチな提案。
461 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:20:12.42 ID:MJTXjpFoa.net] その場合structで囲むのもありだね。二進数リテラルはC++11以前では拡張だけど。
462 名前:デフォルトの名無しさん [2018/09/15(土) 21:04:37.66 ID:V75GOAR/a.net] >>446 の案を利用(C++17以降?) https://wandbox.org/permlink/yIJAkUN2Rm3h7Ldb
463 名前:デフォルトの名無しさん [2018/09/15(土) 21:10:11.77 ID:V75GOAR/a.net] 少し修正 https://wandbox.org/permlink/WtrS5XFoh0knc1W7
464 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 22:39:15.30 ID:oE5p8K2a0.net] ようわからんがプログラムを書き始めた当初 #define CONST_A 3 だったものを extern int g_varA = 3; #define CONST_A g_varA とすれはCONST_Aは一瞬で値を変更可能な「変数」g_varAに設計変更になれるキモス (CONST_Aは定数のつもりだったが後から変数に変えたくなった場合 ただしそうしてしまうとプログラムのどこでも書き換えられてしまって危険極まりないので、 めんどくさくない限りシングルトンすべしという神の啓示に聞こえなくも無い プログラム起動時のみに値を設定する目的であってプログラム動作中は定数扱いなのだとすれば、 シングルトンのマルチスレッド対応は特に何もしなくても良い(クリチカルセクションやミューテック巣やLOCKとか不要 まあ質問に対しては例の図画の「営業の約束」の類やな
465 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 22:48:41.06 ID:VQoTXRx30.net] 2進数書けないのは不便だと昔からおもてた
466 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 22:56:14.72 ID:oE5p8K2a0.net] 接頭辞0bというのは十六進数と紛らわしいから02にしよう
467 名前:さまよえる蟻人間 mailto:sage [2018/09/15(土) 22:58:34.46 ID:2Qh39GgFd.net] 02だと、8進とかぶっちゃうよ。
468 名前:デフォルトの名無しさん [2018/09/15(土) 23:02:11.85 ID:bZY/rtks0.net] 8進がおかしい 0Oにしろ
469 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 23:06:12.86 ID:oE5p8K2a0.net] 二進数が書けたら書けたで、長ったらしくなるから桁区切りを入れさせろという要求が出るのは必至 犯人の要求はエスカレートする一方や
470 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 23:07:07.35 ID:5HUBWRKg0.net] 誰かが仕込んだバグ以外で8進数が使われてるところを見たことがない。 パメ族以外で8進リテラル使ってるやつなんているのか?
471 名前:デフォルトの名無しさん [2018/09/15(土) 23:07:30.30 ID:V75GOAR/a.net] C++14で桁区切りも対応してるぞ
472 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 23:17:11.26 ID:xQnt+Dhj0.net] >>458 賛成!
473 名前:さまよえる蟻人間 mailto:sage [2018/09/15(土) 23:29:24.44 ID:2Qh39GgFd.net] ダブルオー
474 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 23:35:07.74 ID:VQoTXRx30.net] マイコンベーシックで2進数のドット絵キャラを見たときは笑劇だった
475 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 00:46:24.98 ID:JK7FzOgWM.net] >>461 アポストロフィーがどうにも気持ち悪くて… 慣れるのかね、そのうち
476 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 06:21:32.85 ID:TERwdiOQ0.net] int a = 123; // a = 123 int b = 0123; // b = 83 ほんとクソ仕様だなこれ
477 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 06:35:39.96 ID:Ch2PxBqj0.net] 桁区切りってISOにのっとってるの? 国によって違うけど対応してるの?
478 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 06:35:52.88 ID:NJnAChO90.net] Unix系のファイルパーミッションは今でもしぶとく8進数だよな 大嫌いだからあの習慣早く滅亡して欲しい
479 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 07:40:39.31 ID:R+r0qoR6M.net] >>467 可読性を高めるためのもの コンパイラはただ読み飛ばすだけなのでお好きな記方でどうぞ だったはず
480 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 08:43:28.35 ID:+ao0anr70.net] >>460 unix のファイルパーミッションが3bit単位だから昔のソースではcreat()の引数に0755とか0644とか普通に書かれてる てかそのための8進数だと思う
481 名前:デフォルトの名無しさん [2018/09/16(日) 08:47:08.77 ID:SOVIz+sV0.net] rwxrwxrwx 421421421 8進数なのはアタリマエ 8進数以外で表現しようがない
482 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 09:04:46.04 ID:J7jkqE/NM.net] intelチップのマシンコードは3bit単位で意味が変わるから ハンドアセンブル出来るひとは普通8進数使えるよ
483 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 09:08:16.62 ID:NJnAChO90.net] stickyビットとかsetuidビットとか増えてるから本来はもう8進数じゃ足りないんだぞ 未だに引きずられて無理矢理8進数で表現してるのは害悪だから
484 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 09:14:30.28 ID:lOWFqhA+0.net] >>465 気持ち悪いよな アンダースコアでよかったのに何でって思う
485 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 09:19:40.62 ID:yGlb1wug0.net] どっかに書いてあった。ユーザー定義リテラルと衝突するんだと。
486 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 09:20:40.61 ID:AHKBmQkKa.net] ユーザー定義リテラルが先にきてて、アンダースコアだと重複してしまうから。 案としてはアンダースコアも出てたはず。
487 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 09:24:34.63 ID:AHKBmQkKa.net] これやな。 https://cpprefjp.github.io/lang/cpp14/digit_separators.html
488 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 09:30:17.66 ID:Z6oeOzwN0.net] 日本の数勘定として、3桁区切りより4桁区切りのほうが良いと思うの。 100,000,000と書いててもぱっと1億って分からん。 1,0000,0000のほうが分かりやすい。 ってC言語関係ないけど。
489 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 09:40:48.27 ID:M63m8fL00.net] >>478 万事、英米基準だから…
490 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 10:16:56.42 ID:lOWFqhA+0.net] operator "" _000 () みたいなアホなこと書かれかねないからか なるほどthx
491 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 11:19:42.15 ID:+ao0anr70.net] >>471 4bit区切りでいいだろ 4bit目は予備として0固定にしちゃえばいいだけ
492 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 11:23:02.16 ID:+ao0anr70.net] >>465 , >>474 https://askul.c.yimg.jp/img/product/3L1/968131_3L1.jpg
493 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 14:03:39.12 ID:cGCWO0MtH.net] >>478 一億ってかけ それ以外は認めん
494 名前:はちみつ餃子 mailto:sage [2018/09/16(日) 14:41:57.29 ID:iD6L9h5X0.net] ユーザー定義リテラルで 1_億 みたいには書けるじゃろ
495 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 14:43:54.49 ID:lOWFqhA+
] [ここ壊れてます]
496 名前:0.net mailto: constexpr unsigned long long operator "" _\u5104 (unsigned long long val) { return val * 10000 * 10000; } [] [ここ壊れてます]
497 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 14:58:07.76 ID:lOWFqhA+0.net] // Header <japanese> synopsis constexpr unsigned long long operator "" _\u4e07 (unsigned long long); constexpr unsigned long long operator "" _\u5104 (unsigned long long); constexpr unsigned long long operator "" _\u5146 (unsigned long long); constexpr unsigned long long operator "" _\u4eac (unsigned long long); constexpr unsigned long long operator "" _\u5793 (unsigned long long); constexpr unsigned long long operator "" _\u25771 (unsigned long long); constexpr unsigned long long operator "" _\u7a63 (unsigned long long); constexpr unsigned long long operator "" _\u6e90 (unsigned long long); constexpr unsigned long long operator "" _\u6f97 (unsigned long long); constexpr unsigned long long operator "" _\u6b63 (unsigned long long); constexpr unsigned long long operator "" _\u8f09 (unsigned long long); constexpr unsigned long long operator "" _\u6975 (unsigned long long); constexpr unsigned long long operator "" _\u6052\u6cb3\u6c99 (unsigned long long); constexpr unsigned long long operator "" _\u963f\u50e7\u7947 (unsigned long long); constexpr unsigned long long operator "" _\u90a3\u7531\u4ed6 (unsigned long long); constexpr unsigned long long operator "" _\u4e0d\u53ef\u601d\u8b70 (unsigned long long); constexpr unsigned long long operator "" _\u7121\u91cf\u5927\u6570 (unsigned long long);
498 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 15:01:20.18 ID:AX2qPX270.net] mjk
499 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 15:13:55.06 ID:NJnAChO90.net] まあ64bit整数は垓でオーバーフローしちゃうけどな
500 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 15:19:22.27 ID:un+A0LAL0.net] アンダーバー必須?
501 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 15:23:34.17 ID:PDH9z/EW0.net] 予約語なのでユーザー定義リテラルをユーザー定義するときはないとダメ
502 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 20:49:23.78 ID:ecoXNuEUM.net] >>482 あー、既視感はこれか…
503 名前:デフォルトの名無しさん [2018/09/16(日) 21:37:31.50 ID:Lm7yQOTf0.net] 全然関係ない話だが めんどくさいC,C++を習得すると 他言語学習が簡単に進む
504 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 21:46:28.57 ID:h2MQFGAYM.net] >>492 つ VLIW
505 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 23:31:10.84 ID:V0g35lEl0.net] 他言語すべてがザコに見える 特にJAVA
506 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 00:00:35.54 ID:x38HLuISM.net] 多言語使いは問題解決能力が無いのに偉そう 特にJava
507 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 07:23:44.67 ID:EVO8AkN40.net] ところで、C++ってどんな開発に使ってるの? Linuxのアプリ以外で。
508 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 07:48:33.15 ID:oxQatDsR0.net] https://github.com/satori16/PulseGeneratorForWindows こんな感じの物が作れるようになった。win32apiだ。 コアはそれなりにできたが、UI作ろうとしたらバグで死亡ちゅう。テストは良いけど過信しないで。 VBとかC#のビジュアル開発がどれだけ楽か身に染みてきた。 ところで、[0,1]の引数のみで使える面白関数しらないかい? logとかは線形な気がするのでもっとおかしな奴ないかい?
509 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 09:36:25.88 ID:dZ3SMulNa.net] edcb
510 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 13:09:26.75 ID:9OAi7Hbk0.net] >>496 アルゴリズムベンチマーク。 リークしててもそこまで問題にならんし、速度が実際どれくらい出るもんか調べるには良い。 まあcでも良さげな使い方ばっかだけど、namespaceとか多少ね。
511 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 14:24:16.64 ID:zCVYDMXL0.net] >>496 速度が求められるアプリはC++でしょ 大規模データでシミュレーションとかJavaでは遅くて無理
512 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 14:39:27.45 ID:r6sTx27/r.net] リークしてても? リークしてても……?
513 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 14:44:25.11 ID:zCVYDMXL0.net] >>501 そうだなw 盛大にリークしてたら速度にめちゃ影響するわな
514 名前:はちみつ餃子 mailto:sage [2018/09/17(月) 15:02:34.85 ID:O6rb8eh90.net] ものすごい潤沢にメモリがあって処理が終わるまでに使い切ることがないという確信があれば メモリを解放する処理を入れずに速度を優先することは無いわけではないと思うが、 それが妥当かどうかいちいち検討するコストをかけるくらいならちゃんと解放しておいた方がよろしい。
515 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 15:32:46.89 ID:t936AOdi0.net] なんで速度を要する処理の途中でメモリを獲得するん? なんで速度を要する処理の途中でメモリを獲得するん? 👀 Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
516 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 16:08:31.17 ID:0/ju7MLa0.net] >>503 「ものすごい潤沢」では意味がない 処理が終わるまでに最悪何バイト使う可能性があり、 実装されているメモリは何バイトなのか、 需要と供給の具体的な比較あるのみ
517 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 16:22:22.61 ID:kSBsQrFK0.net] サーバープログラムみたいなもんだったら リークしてたらどこでシステム停止するかわからんし大問題に繋がるだろうが、 てきとうなベンチマーク検証ならリークしようと最悪落ちようとそこまで支障をきたすわけじゃ無いってことだよ。 てか実際問題そのくらい実験的な意味合いの強いものじゃ無いとc++は苦しい気がするんだが。
518 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 17:13:04.47 ID:EVO8AkN40.net] C++の生産効率、バク埋め込み率、デバックのしにくさを考えると、積極的にC++を採用すべき分野って限られてくるよね。 組み込みやドライバではCが主流だし、WindowsやスマホではほぼC++は使われないし、Webの世界ではスクリプト言語だし、計算分野ではPythonやMatlabやMathmaticaだし。 仕事でC++使う機会は最近めっきり減ったわ。
519 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 17:37:23.45 ID:3kd9gc670.net] スマポとSTL使ってればリークなんかそうそう起こらんだろ 古臭いC++のイメージで語らないほうが良いよ爺さま方
520 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 17:41:18.57 ID:qtGPC3c90.net] スマポと言っても一秒間に数千回数万回の確保とかしてたら流石に遅くなるんじゃね?
521 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 17:53:56.99 ID:3kd9gc670.net] unique_ptrはナマポ使ってるのと一緒よ
522 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 17:55:45.86 ID:SBpxj18K0.net] >>509 そんな機会はめったにないし、万が一あったらそこだけナマポとかで対処できるのはC++だけ
523 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 18:07:37.03 ID:r6sTx27/r.net] >>502 いや、どんな場合でもリークしないように書けよと思って引っかかった
524 名前:デフォルトの名無しさん [2018/09/17(月) 18:19:02.17 ID:GutZ/6rY0.net] まあ趣味でない限り実用度が学習コストに見合わない感じはあるな 他に比べて
525 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 18:20:26.64 ID:zCVYDMXL0.net] オブジェクトを1個1個newする? でかいデータだと大量にnewするオブジェクトだったら配列で1MBとかまとめてnewしないと遅いでしょ
526 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 18:42:32.24 ID:CEV1V8yd0.net] メモリ解放にも時間かかるけどそこは計測から外します 都合のいい計測をします
527 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 19:57:02.88 ID:HG71i9DfM.net] >>508 それで安全になるかもしれないけど コピーしまくり、newしまくりだったりとかよくあること C++使う理由をよく考えたほうがいいと思うわ
528 名前:はちみつ餃子 mailto:sage [2018/09/17(月) 20:37:10.33 ID:O6rb8eh90.net] >>516 ムーブの恩恵があるやで。
529 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 20:53:22.59 ID:tpLtH4DE0.net] 現代の C++ は処理系もライブラリもそれなりに賢いから、任せきりにしてもそれなりの効率になる。 ほとんど任せきりにできる高級言語としての面と、必要なとこは手動で書ける低級言語としての面を合わせ持つのが C++ の強み。
530 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 21:33:50.41 ID:YgnM5prK0.net] >>512 お前は最低でも数万行くらいの規模のコード書いてから偉そうなことを言え
531 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 21:40:52.08 ID:5VGXhp/T0.net] 最近はC++もスマートポインタが主流で メモリリークもツールでチェックすると聞いたが 現実はどんなもんなん
532 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 22:10:33.50 ID:oxQatDsR0.net] VCには簡易メモリっチェックをするヘッダーがある。もちろん環境依存。 スマポでリークするのはかなり筋が悪い。
533 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 22:19:24.01 ID:CEV1V8yd0.net] >>519 それはリークの言い訳にはならんで
534 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 22:33:55.31 ID:SBpxj18K0.net] >>519 まあどんな場合でもは言いすぎだと思うが少なくとも正常系ではリークなしを目指すのは当たり前
535 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 22:36:30.00 ID:oxQatDsR0.net] スマポでリークするケースというと、昔のインターフェースでスマポそのものが渡せないとかかなぁ。。。 希望としてはリファクタリングしてほしいところだけどね。
536 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 23:14:55.87 ID:YgnM5prK0.net] >>522 誰が「規模が大きければリークしていい」と言った? 言ってないことを言ったかのように相手の主張を捻じ曲げるな >>523 >アルゴリズムベンチマーク。 >リークしててもそこまで問題にならんし
537 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 23:17:40.96 ID:2pCWAXV50.net] リークしたらヒープエリア毎Destroyすれば良いじゃない @マリー・アンチョワネット
538 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 23:28:41.66 ID:YgnM5prK0.net] あぁすまん、正常系について誤解してた まぁ個人で使うレベルなんじゃないかね、本人が問題にならん言うてるし