[過去ログ] C++相談室 part154 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
613: 2021/02/07(日)18:16 ID:p49/UnNX(8/8) AAS
検証不能な事物を錦の御旗にするような人間が
ソフトウェアのテスト推しなのは
大いなる矛盾である氏ね
614: 2021/02/07(日)18:18 ID:HYoiJUgB(10/10) AAS
>>611
あの流れで
> 文章を字面通りにしか解釈できない人?
なんてぬかすやつは複数ID自演厨と見なされて当然だ
疑われたくなければ口の利き方に気をつけな

疑いは晴れてない
この後の発言にも気をつけるんだな
615: 2021/02/07(日)18:24 ID:4v/nAOdw(1) AAS
>>566
なにこれ
616
(1): 2021/02/07(日)18:29 ID:U/6f7Qk0(1/3) AAS
参照をフィールドに保持するのは、一部のパーサーくらいでは?

しかも、状態を関数に切り分けないとデバッグが辛いので、仕方なくそうするだけで、バッド何とかの類だし。
617
(1): 2021/02/07(日)18:31 ID:U/6f7Qk0(2/3) AAS
むかし5chで誰かが、プログラムを書くときは必ずテストしてるはずなんだって言ってましたが。
それを単体テストとして書いておけばずっと使えて便利だよと。

その書き込みを見て世界中の人がテストフレームワークを書き始めたんですよ。
618: 2021/02/07(日)19:06 ID:n+epGkV9(1) AAS
>>616
想像力が足りなすぎ
>>617
想像力が豊かすぎ
619: 2021/02/07(日)20:53 ID:U/6f7Qk0(3/3) AAS
バッドエンディングですね。
620: 2021/02/07(日)21:03 ID:ZOvCZ0cx(1) AAS
グローバル変数使うなとは言わないけどコメントもないのはキツい
grep掛けて検索しても訳分からん
ポインタで飛び火してるときなんてもう…
621: 2021/02/07(日)22:09 ID:IiZq+u+t(1/2) AAS
演算子オーバーロードの厄介さはキーワード検索で拾いにくいこと。
反復子もそうだが。ま、言い出したらきりないが。
622
(1): 仮トリップ ◆4DF7.T7u4M 2021/02/07(日)22:57 ID:HI2f2oIL(1/2) AAS
>>561を書いたのは私なんだけどなぁ...
面倒くさそうな人がいるし、一般論だけ言って立ち去ろって思っただけ
623
(1): 仮トリップ ◆4DF7.T7u4M 2021/02/07(日)23:02 ID:HI2f2oIL(2/2) AAS
ちなみに、>>561以降は何も述べてない。
私は一般論を語っただけだから、他の人が私と似た考えでツッコミを入れただけに過ぎない。

殺虫剤のパラドックス?それがどうした?
私はテストコードを書いて不具合を激的に抑えているが?

殺虫剤のパラドックスを説明したところで、不具合を限りなくゼロに近づける試みが無駄であることの証明にはならない。
624: 蟻人間 ◆T6xkBnTXz7B0 2021/02/07(日)23:09 ID:sfdJNFTq(2/2) AAS
>>622-623
自我の芽生え、おめでとう!
では、かえるの歌を歌います。

【...JASRAC権利関係の為、自主検閲...】

♪パパーン
(全員でクラッカーを鳴らす)
625: 2021/02/07(日)23:20 ID:IiZq+u+t(2/2) AAS
殺虫剤のパラドックスなんてものは存在しない。
ただの退行テスト不足だ。
626: 2021/02/08(月)06:24 ID:PnrMZIJR(1) AAS
殺虫剤のパラドックスって言いたかっただけやろw
そもそもテストで発覚したバグを修正したら同じテストで摘出できないのは当たり前
摘出できたら単なる修正漏れだしw
JSTQBの関係者か信奉者が言い出したんだろうけどあまり意味のない用語だと思う
627
(1): 2021/02/08(月)06:42 ID:HwnOmmQF(1) AAS
蒸し返さなくていいから……
628
(1): 2021/02/08(月)07:03 ID:nKLqWVxG(1/3) AAS
虫返さないですと!?
629: 2021/02/08(月)11:05 ID:NGjwD54G(1/2) AAS
>>610
そもそも>>600は的外れだと思うんだが
メンバの方を参照かポインタで持つ、で終わりだろ
3行目以降完全に蛇足
630: 2021/02/08(月)11:20 ID:VJ9lplXi(1/4) AAS
>>627,628
そういうのは無視しろ
631: 2021/02/08(月)12:00 ID:zDqHH6LK(1) AAS
スルーの法則
632: 2021/02/08(月)12:43 ID:DuebuhTc(1/2) AAS
>>602
>>599
誰か
永続的に使用するなら shared_ptrで受け取れ。今のままだとsetSansyoを呼び出す側が所有権手放していいのかわからなくて困るだろ。
て指摘した?
今や生ポインタなんて性能優先のときに内部的に使用するもんで、インターフェイスで使用するもんじゃない。

あと、参照も関数内だけで使用する引数に使うもんで、永続的に所有する引数に使うもんじゃない。
633
(2): 2021/02/08(月)14:04 ID:VJ9lplXi(2/4) AAS
コンストラクタでなら参照型のメンバ変数に保存できる。ほとんどの人はやらないけど。
634: 2021/02/08(月)18:54 ID:DuebuhTc(2/2) AAS
>>633
できるのと実際に実装するのは別の話だわな。
所有権の無いオブジェクトの参照を保存するなんて狂気の沙汰だ。
635: 2021/02/08(月)19:12 ID:nKLqWVxG(2/3) AAS
アイキャンユーキャン。
636: 2021/02/08(月)20:51 ID:U8Md53kE(1) AAS
>>633
クラス間に親子関係のようなものがあって、子の生存期間が常に親の生存期間内にあるような場合は、親への参照をメンバ変数とすることは普通にあると思うけど。例えば>>484とか
637: 2021/02/08(月)21:15 ID:NGjwD54G(2/2) AAS
shared_ptr(またはスマポ)至上主義の変なやつ以前から居るんだよな
相手にするな
638: 2021/02/08(月)21:37 ID:UsSsiWeS(1) AAS
ナマポ使ったほうが良い場面なんて皆無でしょう
639: 2021/02/08(月)21:48 ID:2GJiXyxS(1) AAS
出たwナマポ完全否定奴w
640: 2021/02/08(月)21:58 ID:VJ9lplXi(3/4) AAS
参照型のメンバ変数は参照オブジェクトの生存期間を保証できないからweak_ptrで保存しておいて使う時だけshared_ptrを取得するのがC++的な解決なんじゃないの。
641: 2021/02/08(月)22:08 ID:FKp3giDs(1) AAS
スマポにしたら所有権の問題を考えなくてよい
というわけではないからスマポ使えというのは妥当ではない
逆に所有権に矛盾が無ければインスタンスは生成元が与えた参照を持って良い

ていうかスコープを抜けたら自動的に解放される系のクラスを書いたら
エラー処理上エラー通知先としての生成元オブジェクトの参照保持はほとんど不可避
642: 2021/02/08(月)22:11 ID:NgGwlfwa(1/2) AAS
コピー禁止のshared_ptr欲しい
643: 2021/02/08(月)22:25 ID:bp+4mh0R(1) AAS
すべてスマポで書くスタイルも悪くないと思うけど、メイヤーズ神もツリー構造で子が親のポインタを持つときはナマポで十分と書いている
644
(1): 2021/02/08(月)22:27 ID:34Jom8HU(1) AAS
木のノードは子へのポインタじゃなくて子のノードIDを持て😡
645: 2021/02/08(月)22:48 ID:NgGwlfwa(2/2) AAS
自分よりポインタの方が寿命が長いことが保証されているなら確かに生ポで問題ないが
それが成り立つ状況ってなかなかないよな。
646: 2021/02/08(月)23:02 ID:VJ9lplXi(4/4) AAS
参照先の実体がまだ生存しているかどうか知るにはweak_ptr::expired()を使うしかないのが現状でしょ。
647: 2021/02/08(月)23:07 ID:nKLqWVxG(3/3) AAS
Chromiumはstd::unique_ptrを全面的に使ってるけど、ポインタを使う設計そのものが古いような気がする。
648: 2021/02/08(月)23:13 ID:BwguerZK(1) AAS
まあcコードを全く使わないってのならいいんでないの。
ただc++のポータビリティーは君が思ってるより低いけどね。
649: 2021/02/08(月)23:23 ID:cR8ppl+C(1) AAS
露骨すぎるマウント取りたがりダッセーwww
650: 2021/02/09(火)01:58 ID:qUmf+U4D(1/4) AAS
マウントじゃなくてポインタでは?
651
(1): 2021/02/09(火)02:46 ID:jPnyP+Vp(1) AAS
C++に特化したAPIなんてどこのOSでも提供されないから、結局、Cの配列と互換性のあるstd::vectorやstd::arrayを使わざるを得なくなる。
652: 2021/02/09(火)04:01 ID:qUmf+U4D(2/4) AAS
>>644
木もコンテナで良いですよね。
所有権がハッキリしてて。
653
(1): 2021/02/09(火)07:34 ID:nSJhwzEU(1) AAS
>>651
data()を必ず使う手合いか?
654: 2021/02/09(火)07:39 ID:s3p3GZ7R(1/3) AAS
木は木全体を収める領域ごと一気に解放する場合もあるから別に
655: 2021/02/09(火)17:49 ID:KrtnTLUi(1) AAS
>Cの配列と互換性のある

doubt
656: 2021/02/09(火)17:53 ID:LEWRJrN2(1) AAS
ダウトとデビューって似てるよね
657
(1): 2021/02/09(火)18:35 ID:qUmf+U4D(3/4) AAS
親が子のポインタを所有する木は、親を消すとネストして子孫のデストラクタを呼ぶので、スタックが枯渇します。

したがって、子から順番に消さなくてはなりません。
658: 2021/02/09(火)18:56 ID:qUmf+U4D(4/4) AAS
その様はまるで摩天楼がドミノ倒しのように連鎖倒壊するようでもあり、DOMINOというピザにもなっています・
659: 2021/02/09(火)19:07 ID:IPYpL0sA(1) AAS
なんと後味の悪い話
660: 2021/02/09(火)20:39 ID:zHOwdh/n(1) AAS
意味が分からない
661: 2021/02/09(火)21:07 ID:Rh87rJZX(1) AAS
>>657
それで枯渇するようじゃ木の探索すらできない。
662
(1): 2021/02/09(火)21:13 ID:5Ac7csWH(1/2) AAS
探索はループでもできるんで、たとえば数万個の要素を持つツリーを子から消せというのは真理なのかも
663: 2021/02/09(火)21:27 ID:AojZLEiV(1) AAS
消すのは独立して実行できるので別スレッドに送れば実質コスト0
664: 2021/02/09(火)21:38 ID:s3p3GZ7R(2/3) AAS
>>662
DFAとPDAではやれることの範囲の違いがちげう

つかこの場合は安易にスマポとかコンテナを使うから破棄ごときにトラバースの手間がかかるんである
665: 2021/02/09(火)21:44 ID:5Ac7csWH(2/2) AAS
それもそうであるな
666: 2021/02/09(火)21:50 ID:s3p3GZ7R(3/3) AAS
ちゅか垂直探索なら木をメモリに持っておく必要が無い
水平探索ならメモリ上に世代1、世代2、....と木を育てていく(らしい)が
兄弟ノードを全部見終えたのでいざ従妹ノードに移ろうとするときに
親ノードへの参照は欲しい木がするがするとshared_ptrなら即循環参照になり、
子の情報で親(子孫がいっぱいぶら下がっている)を生成できるわけもないから、
ウィークポインタの出番でもない
667: 2021/02/10(水)01:37 ID:XIZePh+h(1/4) AAS
子から消さなかったばかりに。
2000人を乗せた航空機が洋上で消えた。
ってなるかも?
668: 2021/02/10(水)01:48 ID:ZYaksnCf(1/5) AAS
A380でさえ853席だが2000人なんてどうやって載せるんだろう
669: 2021/02/10(水)01:51 ID:2ozOIzIF(1) AAS
く、空中で衝突するとか…
670: 2021/02/10(水)01:53 ID:XIZePh+h(2/4) AAS
インドでは屋根の上にも乗ります。
671
(1): 2021/02/10(水)01:55 ID:XIZePh+h(3/4) AAS
外部リンク:trafficnews.jp

証拠写真みつけてきた。
672: 2021/02/10(水)01:55 ID:uF0JvJPV(1/3) AAS
GTA5のMOD作成者みたいな会話だな
673: 2021/02/10(水)02:01 ID:uF0JvJPV(2/3) AAS
>>653
昔はdata()がなかった。(遠い目)
674: 2021/02/10(水)06:40 ID:ZYaksnCf(2/5) AAS
アントノフの貨物室にすし詰めでどんくらい乗れるかな
675: 2021/02/10(水)06:40 ID:XIZePh+h(4/4) AAS
東京: TK
京都: KT
大阪: OSK
淡路: AWG
676: 2021/02/10(水)07:59 ID:FGGGEnfF(1/2) AAS
航空機や原発みたいなクリティカルなシステムでは
全部固定長の配列で書いてあるんじゃないの
677: 2021/02/10(水)08:06 ID:uF0JvJPV(3/3) AAS
釣れますか。
ヒープのほうが少し安全です。
678: 2021/02/10(水)10:25 ID:4XPmMtZj(1) AAS
>>671
どこが証拠やねん!
せいぜり100人やないかヽ(`Д´)ノ
679
(3): 2021/02/10(水)14:32 ID:TFzLuCg0(1) AAS
すみません、std::for_each を使っていて continue したくなりましたが、サポートしてないです
よね? これって:
1. for_each は continue する必要がないような処理に限ってに使うべき。
2. ループの中で大きい if ブロックを作って空の処理にすればよい。
3. その他
680: 2021/02/10(水)15:13 ID:ZYaksnCf(3/5) AAS
returnすれば?
for_each(begin(foo), end(foo), []{ if(bar) return; });
681: 2021/02/10(水)16:06 ID:HSfvjOUE(1/2) AAS
return は continue ではなく break じゃないの?
質問者の2.大きなif分で実質何もしないでいいと思う
682: 2021/02/10(水)16:20 ID:ZYaksnCf(4/5) AAS
for_eachをbreakするにはthrowかlongjmpがいるぞ
683: 2021/02/10(水)16:35 ID:S47HOUGT(1) AAS
きったねぇジャンプだ
684: 2021/02/10(水)16:51 ID:HSfvjOUE(2/2) AAS
あ、ラムダ式になってたのか
685
(1): はちみつ餃子 ◆8X2XSCHEME 2021/02/10(水)17:51 ID:tNqysU9n(1) AAS
>>679
for 文で書いた方が短く書けそうだけど、
あえて for_each を使いたい理由が何かあったりするの?
686: 2021/02/10(水)18:41 ID:FGGGEnfF(2/2) AAS
Perlなら問題無くできる(continue→next、だが
C++規格委員会がfor_eachのcontinueを許可しないのは最後の一線なのかもしれん…
687: 2021/02/10(水)19:51 ID:teDb7k99(1) AAS
何の一線よ
688
(1): 2021/02/10(水)20:18 ID:ln/pLvjf(1/2) AAS
いやreturnでいいだろ…
許可しないってなんのことだよ
689
(1): 2021/02/10(水)21:21 ID:+e+FbMSY(1) AAS
vectorで一億件ほどで、飛ばしたいのが100〜1000件程度なんだろう
690
(1): 2021/02/10(水)21:51 ID:QYfnOwKH(1) AAS
>>679
for_eachをrange based forに変更は出来ないの?
691: 2021/02/10(水)21:59 ID:ZYaksnCf(5/5) AAS
>>690
おまえのスキルのためにか?
692: 2021/02/10(水)22:17 ID:qtVJ0qYe(1) AAS
range based forなら普通にcontinueできるぞ
693: 2021/02/10(水)22:18 ID:ln/pLvjf(2/2) AAS
>>689
飛ばす手段があったとして、飛ばすかどうかどこでどう判断するの?
694: 2021/02/11(木)04:16 ID:nrDdTgaQ(1) AAS
early returnは正義
695: 2021/02/11(木)11:22 ID:n0GRjtoR(1) AAS
>>685
テンプレのときとか
696: 2021/02/11(木)17:53 ID:Iq2aKjep(1/5) AAS
679がなぜfor_eachを使うのかを無視するのは
他人の領分を侵すお節介だ

for_eachの使い方をアドバイスできんやつは
しゃしゃり出てくるな
697: 2021/02/11(木)18:00 ID:hRfccug1(1/2) AAS
よくよく話を聞いてみたらまるで異なる解決策が見つかるなんてよくあることじゃん。そんな経験ないの?
何をしたかったか確認するのは重要
698: 2021/02/11(木)18:15 ID:Iq2aKjep(2/5) AAS
流れをよく読んでみろよ
for_eachをロクに使ってないやつなのモロバレだろ
質問者が尋ねていないことを答えたいから協力しろなんてぬかすのは
回答者の資格ねえんだよ
699: 2021/02/11(木)18:18 ID:Iq2aKjep(3/5) AAS
自分が何か尋ねているときに
質問内容に付き合ってやれる懐のねえやつは
うぜえだけだろが
700: 2021/02/11(木)18:23 ID:Iq2aKjep(4/5) AAS
質問内容において自分より下なやつに教えを請いたいかよ
701
(1): 2021/02/11(木)18:34 ID:hRfccug1(2/2) AAS
for_eachを使う場合の答えはとっくに出てるのに何言ってんの?
702
(1): 2021/02/11(木)19:17 ID:15xoUz1R(1) AAS
3のその他で答えただけ。
703: 2021/02/11(木)20:01 ID:veopzNW6(1) AAS
他人の領分なんて侵してナンボ
704
(1): 2021/02/11(木)20:03 ID:qccRsQET(1) AAS
>>702
はあ?returnではいけない理由は?
705: 2021/02/11(木)20:19 ID:a/CQbB/Z(1) AAS
>>679はループしたいだけだろ
std::for_eachを何が何でも使わなければならない特殊な事情があるなら仕方ないけどそんなこと言ってないし
706: 2021/02/11(木)20:23 ID:nDjPJyoP(1) AAS
>>704
returnで良いと思うよ。
707
(1): 2021/02/11(木)20:50 ID:Iq2aKjep(5/5) AAS
>>701
680は俺だが何言ってんの?
708
(2): 2021/02/11(木)21:58 ID:bviF/sLG(1/2) AAS
Visual Studio 2010(MSVC2010)で
 template<class T>
 void foo(T x) {
  printf("%d: %d\n", targetEntity, x);
 }
という関数テンプレートが定義されているときに、
 namespace bar { const int targetEntity = 1; }
 using bar::targetEntity;
 void baz() { foo(100); }
はコンパイルが通るのに、
省8
709: 2021/02/11(木)22:06 ID:bviF/sLG(2/2) AAS
>>688
for_eachを勘違いいてたわサーセン、
確かにfor_each<bgn, end, Function>のFunction(*it)からならreturnするで良さげ
710: 2021/02/11(木)23:28 ID:Ooe4jkn9(1) AAS
>>707
アンパンマンはキミだ。
711
(2): はちみつ餃子 ◆8X2XSCHEME 2021/02/12(金)01:36 ID:2OOQ6m86(1) AAS
>>708
宣言の有効範囲は宣言された場所からその宣言を含むブロックの終わりまでというのが原則
(クラススコープなどの例外はあるのでその他にも関連するルールはあるかもしれんけど)
なのでどちらもエラーになるのが筋だと思うし、 gcc や clang で試したらどっちもエラーだった。

逆にどういう理屈で前者が通るのかは気になる。
712
(1): 2021/02/12(金)06:02 ID:45Tu3B4L(1/9) AAS
>>708
当たり前だね
最初の例ではtargetEntryをグローバル空間に導入しているからbaz()とfoo()の両方から見える
2番目の例ではtargetEntryをbaz()のブロック内に導入しているから、そこに包含されないfoo()のブロックからは見えない

ただし、これはfoo()を関数原型と関数定義に分けて関数定義をbarよりも後方に置いた場合の話だ
原文のままでは>>711が言うとおり通るわけがない
1-
あと 290 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.024s