[過去ログ] C++相談室 part154 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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)の反射律、推移律を導入しただけ
では兄弟間の大小が定まらない、
みたいな
749: 2021/02/17(水)23:47 ID:ZhVk2C4b(3/4) AAS
のは半順序で、
整数みたいなやつが全順序
750: 2021/02/17(水)23:59 ID:ZhVk2C4b(4/4) AAS
なお{ 全順序集合 }⊂{ 半順序集合 }なのは確定的に明らかなので、
反射律・推移律だけしか要請されていなかったらそれは全順序集合の集合を含む半順序集合の集合の意味となりぬ
つまり全順序集合の集合と半順序集合の集合が区別できん
両社を区別したい議論のときは比較可能性の有無を宣明せねばならんぬ、
751: 2021/02/18(木)00:34 ID:48a8FzyN(1/3) AAS
a≦b または b≦aが成り立つ時、比較可能
弱順序ってしらなかったけど、半順序とは違うようだ
「半順序?弱順序?二項関係・順序関係まとめ」って記事
752(1): 2021/02/18(木)03:35 ID:sRdwF113(1) AAS
束論やってるけど弱順序とか初めて聞いた…
マ界用語?
753: 741 2021/02/18(木)06:50 ID:brZHVFLx(1) AAS
>>742
まだ何とも言えないが
thx!
754: 2021/02/18(木)10:08 ID:48a8FzyN(2/3) AAS
弱順序は、半順序よりは制限強いが全順序より弱いもので、
ある種のソートアルゴリズムでは全順序よりは制限緩められるけど
半順序までは緩められない、ってのがあるみたいね
755: 2021/02/18(木)13:16 ID:9Yl3mCZH(1) AAS
>>752
束って何で勉強すればいいん?
756: 2021/02/18(木)14:43 ID:48a8FzyN(3/3) AAS
アルゴリズムとの関連はちょっとわからんけど
数学としての束論って単独の本は少なくて、代数学の本に載ってるんじゃないかな
もしくは順序集合の話として集合論の本
757(1): ◆QZaw55cn4c 2021/02/19(金)04:42 ID:3tFNJrqv(1/2) AAS
>>748
>普通に言葉通り任意の2つの元を比較できるということなのでは…
いや、それは全順序ですよ
・擬順序
・順序
これらの演算子を≦としたとき、かならずしも任意の二元 a, b について a ≦ b の真偽が定まらなくてもいいと思います
擬順序に対して「a ≦ b かつ b ≦ a ならば a = b」という縛りが追加されるのが順序、
順序に対して、任意の二元 a, b について「a ≦ b」または「b ≦ a」のどちらかである、という縛りが要請されるのが全順序
だったかと
758: 2021/02/19(金)20:38 ID:mpGE+xsF(1) AAS
wikipediaの「推移関係」の項目より
半順序 - 反対称的な擬順序
擬順序 - 推移的であると同時に反射的
全擬順序 - 完全的な擬順序
同値関係 - 対称的な擬順序
厳密弱順序 - 強半順序関係で等価関係での比較が不可能な場合
全順序 - 推移的で反対称的な完全関係
全順序、半順序くらいしか知らんかった
759: 2021/02/19(金)20:51 ID:gWMDVcMR(1/4) AAS
OOPの本だとサブクラス関係は前順序って書いてるよな?擬順序ともいうのか
推移的、A→B∧B→C |- A→C 、サブクラスのサブクラスはサブクラス
かつ反射的、AはAのサブクラス
760(1): 2021/02/19(金)20:55 ID:fAhRarpN(1) AAS
>>757
>いや、それは全順序ですよ
は? その条件が共通なだけだろ
761(3): ◆QZaw55cn4c 2021/02/19(金)21:23 ID:3tFNJrqv(2/2) AAS
>>760
一番弱い順序、推移的かつ反射的であるのみの順序関係は、実は任意の二項間においてかならずしも順序関係の真偽が定まらなくてもいいのですよ
すべての二項間で順序の真偽が定まるのは、順序の中でも一番強いものである全順序で初めて導入される、と私は解釈しています
762: 2021/02/19(金)21:44 ID:gWMDVcMR(2/4) AAS
ブール代数 型システムで検索しても出てこないけど>>523
可補分配束の定義見てると確かにそんな気はしてくる
インスタンス関係かサブクラス関係なのか?どっちでも成り立ちそうだけど、取り敢えず静的チェックをパスすることを考える
要素が無いと言う意味でCのvoidを冪集合ブール代数の最小元、空集合とみなす
void *は何でも指せるという意味で最大元
まともな型システムなら(少なくとも)上記の擬順序以上は要求る
演算は多重継承とvirtual 定義が∨/∧に対応?クラス図書いてみたら成り立ちそうに思える
型チェック通らない全ての型を考えられるし、それが¬
型述語で定義してればそのまま!演算子になる
上下前次1-新書関写板覧索設栞歴
あと 240 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.027s