[過去ログ] C++相談室 part154 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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); }
はコンパイルが通るのに、
namespace bar { const int targetEntity = 1; }
void baz() {
using bar::targetEntity;
foo(100);
}
だと
error C2065: 'targetEntity': 定義されていない識別子です。
と言われるorz
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が言うとおり通るわけがない
713: 2021/02/12(金)06:03 ID:45Tu3B4L(2/9) AAS
- barよりも後方
+ usingよりも後方
714(2): 2021/02/12(金)07:01 ID:3x5iWh5q(1/6) AAS
確かにideoneでもVS2019でも両方エラーになるのですだが、
1番目の例はVS2010ではビルドも通って動くもーん
ソース:
外部リンク:ideone.com
実行結果(※ VS2010限定):
1: 100
続行するには何かキーを押してください . . .
715: 2021/02/12(金)07:04 ID:3x5iWh5q(2/6) AAS
ちな関数テンプレートfoo()の定義をusingよりも後方にしたら全てでビルドが通って動く
まそりゃーそうならないとおかしいが
716(2): 2021/02/12(金)07:12 ID:45Tu3B4L(3/9) AAS
>>714
通ってねえじゃん
何が言いたいんだ?
717: 2021/02/12(金)07:17 ID:3x5iWh5q(3/6) AAS
>>716
> >>714
> 通ってねえじゃん
> 何が言いたいんだ?
※ VS2010限定
718: 2021/02/12(金)07:24 ID:45Tu3B4L(4/9) AAS
だから何?
ill-formedなのがわかっても自分が正しいと強弁したいのか?
719(1): 2021/02/12(金)07:27 ID:3x5iWh5q(4/6) AAS
全員の主張を再検証しただけでつよ?
>原文のままでは>>711が言うとおり通るわけがない (>>712)
が覆されてご機嫌ななめ??
720: 2021/02/12(金)07:32 ID:45Tu3B4L(5/9) AAS
覆った?
おまえVS2010限定で逃げただろ
ill-formedはill-formed
これを覆せたら出直して来な
721: 2021/02/12(金)07:34 ID:45Tu3B4L(6/9) AAS
俺も昔のバージョンのコンパイラは使うがバグ技は使わないし
そういうことをする厨二病とは組みたくない
722: 2021/02/12(金)07:38 ID:3x5iWh5q(5/6) AAS
>おまえVS2010限定で逃げただろ
VS2010ではビルドが通るというのが話の発端なので…
1番目の例がill-formedであろう点は同意
723: 2021/02/12(金)07:51 ID:45Tu3B4L(7/9) AAS
orzなんだろ
何が誰が悪いのかわかったら素直になれよ
居直る態度が気に入らねえ
724: 2021/02/12(金)08:12 ID:3x5iWh5q(6/6) AAS
何が悪いのか、はともかく
誰が悪いのかとは一体…
つか現象(事実)の提示に対してそれを反発と解釈して勝手に炎上しないでいただきたい;;;
個人的にはVS2010のバグである可能性でほぼ確定とは思いつつ、
例1と例2で動きが違うことから、MSVC2010は、グローバルなシンボルについて
template foo()や関数baz()の中の解釈に入る前に名前空間を確定させる実装なのだと感じる
(template foo()の解釈ロジック自体にバグがあるなら例1、2とも同じ結果になるのが自然
再発防止のためには、C++規格のどこをどう読めば良いんじゃorz
725: 2021/02/12(金)08:57 ID:45Tu3B4L(8/9) AAS
>>719は明らかに煽り口調だろうが
和解したいなら、あの態度を撤回しろ
俺は和解なんかできなくて構わんが
726: 2021/02/12(金)10:26 ID:1W1GlA05(1) AAS
匿名掲示板で誰が何を言ったのどうのとみっともないぞデフォルトの名無しさんよ
727: 2021/02/12(金)11:29 ID:jxDcSv/l(1) AAS
どう見ても>>716がイミフな言いがかりつけてるだけにしか見えんが…
> 確かにideoneでもVS2019でも両方エラーになるのですだが、
> 1番目の例はVS2010ではビルドも通って動くもーん
728(1): 2021/02/12(金)13:22 ID:x9NfpsA7(1) AAS
匿名でも江副とかQZとか片山やはちみつが糞なのは伝わってくるω
729: 2021/02/12(金)18:24 ID:45Tu3B4L(9/9) AAS
単発IDになりやがった
どこまでも腐ってやがるな
730: 蟻人間 ◆T6xkBnTXz7B0 2021/02/12(金)19:12 ID:fTOQtm+W(1/2) AAS
どこでも動くように標準化しましょうねって話だよね。
731: 蟻人間 ◆T6xkBnTXz7B0 2021/02/12(金)19:29 ID:WC9JZZt5(1/2) AAS
G++とかclang++などの複数のコンパイラで警告最大にして自動ビルドすれば再発防止できると思われます。
732(1): 2021/02/12(金)19:37 ID:3abO7oQ0(1) AAS
流れをぶった切って質問です。
あるクラスで生成、削除を一切合切プライベートにしたい(ファクトリメソッドでスマートポインタを渡す)んだけど、
::deleteを対象クラスだけプライベート、あるいはコンパイルエラーにする
ことって可能かしらん?
733(1): 蟻人間 ◆T6xkBnTXz7B0 2021/02/12(金)19:46 ID:WC9JZZt5(2/2) AAS
>>732
private dtor使え、だとよ。
外部リンク:stackoverflow.com
734: 蟻人間 ◆T6xkBnTXz7B0 2021/02/12(金)19:55 ID:fTOQtm+W(2/2) AAS
dtorはデストラクターの略ね。
死のトラクターじゃないよ。
735: 2021/02/13(土)02:57 ID:ZCgeuP6g(1) AAS
映画化決定。
736: ◆QZaw55cn4c 2021/02/15(月)00:20 ID:M7Hs01/T(1) AAS
>>728
私が馬鹿なのは私自身が認めていることですが、片山さんはすごいと思いますよ、何よりも片山さんは多産ですし、私は片山さんを尊敬しています‥‥
737: 2021/02/15(月)12:30 ID:tZ1nblID(1) AAS
>>733
ありがとう。参考になりました。
流石にグローバルdtorの直接呼び出しを気にしている人は居なさそうですね。
通常の使い方じゃないから気にするな、が正解かしらん。
738: 2021/02/16(火)18:45 ID:zTH+X1Xm(1/2) AAS
画像
画像リンク[jpg]:genkibox.com
739(1): 2021/02/16(火)18:59 ID:zTH+X1Xm(2/2) AAS
つかprivate dtorって何の解決にもなって
なくね?
クラスFooのデストラがprivateな時点で
Fooのfirendでも何でもないstd::shared_ptr<Foo>はビルドエラーになる宿命なのでは…
あとp.get()->Delete()とされるのも恐ろしいすぐる………
740: 2021/02/16(火)19:15 ID:Pme6j5oX(1) AAS
>>739
そのあたりは回避策ある。
どのwebページに解説あったか覚えてないけど……
741(1): 2021/02/17(水)08:24 ID:Pn/OWNHb(1) AAS
operator <=>を定義しても
==と!=が使えるようにならないのは、なんで?
742(1): 2021/02/17(水)11:29 ID:u6Au0MiC(1) AAS
外部リンク[html]:cpprefjp.github.io
のoperator==節で仕様とその理由についても説明してあります
743: 2021/02/17(水)12:05 ID:8kTif7Fu(1) AAS
relops
744: 2021/02/17(水)12:07 ID:ZhVk2C4b(1/4) AAS
relops
745(1): 2021/02/17(水)12:14 ID:7xS0C1vs(1) AAS
なるほどわからん。弱順序って何よ?
746(1): 2021/02/17(水)13:36 ID:peDNmUYI(1) AAS
>>745
二項関係で、反射律、推移律、比較可能性を満たすもの
747: ◆QZaw55cn4c 2021/02/17(水)21:10 ID:n4obO1jB(1) AAS
>>746
擬順序とか半順序と呼ぶ本もありますね、
ただ、その「比較可能性を満たす」とはなんでしょうか?私の教科書では、擬順序には反射律・推移律だけしか要請されていなかったと記憶しているのですが?
748(1): 2021/02/17(水)23:46 ID:ZhVk2C4b(2/4) AAS
普通に言葉通り任意の2つの元を比較できるということなのでは…
木構造で「親は子より大きい」という順序を定義しただけ
(全順序集合(例えば整数)で全ノードをラベル付けしてしまうというチート手段に訴えことなく、
文字通り「if (aはbの親) { a > b; }」という規則と(a, b)の反射律、推移律を導入しただけ
では兄弟間の大小が定まらない、
みたいな
上下前次1-新書関写板覧索設栞歴
あと 254 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.429s*