- 1 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 20:54:06.26 ID:Nt0XFA2s.net]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part147 https://mevius.5ch.net/test/read.cgi/tech/1576659413/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.105【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1556142878/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語)
- 529 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 09:55:00.47 ID:aEgJYC9i.net]
- といっても成功していないのだからエラー扱いで差し支えないなのでは…
- 530 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 10:28:32 ID:Ej5ffr5G.net]
- >>516
なんでそんなに自信満々なんだよw マジでドキュメント見てこい https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getmessage
- 531 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 10:45:20 ID:Jw8Rx7z0.net]
- >>510
GetMessageのマニュアルをちゃんと読めクソ雑魚 エラーの時は-1、WM_QUITの時はFALSE(0)を返すが、それ以外の時は「nonzeroを返す」としか言ってない nonzeroというのはたくさんの値の集合であって、その判定をある特定の値と==で行うことはTRUEが1だろうと他の値だろうと完全な間違いだ つまりお前のその糞プログラムは完全にバグっているし、お前がバカにしてる>>455らが言った通りの間違いをそのま
- 532 名前:まやらかしてる []
- [ここ壊れてます]
- 533 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 10:54:04 ID:Jw8Rx7z0.net]
- クソ雑魚>>510はマニュアルを読まない可能性があるので、マニュアルの使用例貼っておきますね
GetMessageがFALSE(0)返したときの何がエラーだって?笑わせんなカス TRUE以外ならassertで落としていいなんてどこに書いてある?勝手な妄想すんなゴミ BOOL bRet; while( (bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0) { if (bRet == -1) { // handle the error and possibly exit } else { TranslateMessage(&msg); DispatchMessage(&msg); } }
- 534 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 11:39:41 ID:aEgJYC9i.net]
- >>519
>TRUE以外ならassertで落としていいなんてどこに書いてある? それはこちらが聞きたい; 何を見てそう思ったのか?
- 535 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 11:53:18.89 ID:PT76WH2y.net]
- >>519
変数いらねーから for(;;) switch(GetMessage(&msg, hWnd, 0, 0)) { default: TranslateMessage(&msg); DispatchMessage(&msg); break; case 0: return int(msg.wParam); case -1: throw std::system_error(std::error_code(int(GetLastError()), std::system_category()), "GetMessage"); }
- 536 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 12:02:53.96 ID:Cr/e9GtE.net]
- while(GetMessage( &msg, hWnd, 0, 0 ) >0)
{ TranslateMessage(&msg); DispatchMessage(&msg); }
- 537 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 12:05:04.77 ID:aEgJYC9i.net]
- とオモタがわかった
GetMessage()は WM_QUIT以外を受け取ったとき非0を返す、としか書かれていないから bRet32 == TRUEでは正しい判定にならないのねん 使ったのがスゲー昔なので忘れていたが、そのときは多分>>519式に書いたから安心してホスイ
- 538 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 12:06:02.94 ID:aEgJYC9i.net]
- >>522
気持ちはワカル
- 539 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 15:07:49.90 ID:Z95s67CZ.net]
- しょうもない事で攻撃的になるやつなんなの
いつも吹いてしまうw
- 540 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 15:13:04.53 ID:G+Zw2pJ3.net]
- (笑)
- 541 名前:はちみつ餃子 mailto:sage [2020/02/09(日) 15:27:19.45 ID:OoesT11A.net]
- >>506
BASIC というか、古の言語にはビット演算と論理演算の区別がないものが結構あった。 全てのビットが立った状態 (-1) を真ということにしておけば ビット演算用の AND, OR, NOT がそのまま論理演算のそれとして使える。 昔はこれが気の利いた方法だったんだろう。
- 542 名前:デフォルトの名無しさん [2020/02/09(日) 16:19:35.32 ID:wTv3WydA.net]
- #define FALSE 0 ← 正しい
#define TRUE 1 ← 間違い くず! 0点!! 出入り禁止!!! #define TRUE (!0) ← 正しい if(b) ← 正しい if(b != FALSE) ← 正しい if(b == TRUE) ← 間違い くず! 0点!! 出入り禁止!!!
- 543 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:16:55 ID:J3Qn0niW.net]
- >if(b != FALSE) ← 正しい
これこそ糞コード
- 544 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:20:45 ID:GpaXptWq.net]
- 意味的にboolなら
if (a) if (!a) で判断すべきだと思う
- 545 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:24:22 ID:GpaXptWq.net]
- if (a == TRUE)
if (a == TRUE == TRUE) if (a == TRUE == TRUE == TRUE)
- 546 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:32:39 ID:DvSFPggO.net]
- とぅっとぅるぅ〜♪
- 547 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:40:32 ID:J3Qn0niW.net]
- もともと>>438と>>439を混同すんなという話なんだが、混同してる奴が次から次へと湧いて出てくるw
- 548 名前:デフォルトの名無しさん [2020/02/09(日) 17:46:22.21 ID:cYNa4VVg.net]
- ちゃうねん。
- 549 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:46:32.42 ID:ugWNThcV.net]
- >>528
#define TRUE (!0) ← 正しい C/C++ では、!0 は、必ず1 になることが仕様化されているので、仕様に準拠している 処理系ではこれは必ず、 #define TRUE 1 と書くのと同じになるので、敢えて (!0) と書く意味は無い。
- 550 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:48:20.60 ID:GpaXptWq.net]
- boolだろうがBOOLだろうがYESNOだろうが
意味がboolであればboolと同じ扱い
- 551 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:48:58.88 ID:6++kPC7v.net]
- >>529
糞コードだが > if(b == TRUE) ← 間違い くず! 0点!! 出入り禁止!!! より1億倍マシ
- 552 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:50:49.32 ID:GpaXptWq.net]
- >>528
1がイヤなら0もイヤだろう #define FALSE (0!=0) としないと
- 553 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:55:11.50 ID:J3Qn0niW.net]
- >>
- 554 名前:537
マシとか言う以前にそもそも動作が違うんだが。 bがTRUEと一致するかどうか判断するのに他にどういう書き方をするというんだろう? []- [ここ壊れてます]
- 555 名前:デフォルトの名無しさん [2020/02/09(日) 17:59:01.69 ID:cYNa4VVg.net]
- >>539
!(b != TRUE)。
- 556 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:02:21.32 ID:GpaXptWq.net]
- 普通はTRUEかFALSEしか入ってないんだよ
それ以外が入ってる可能性があるなら 普通TRUEがどうかの判断だけじゃダメじゃないか?
- 557 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:05:49.02 ID:GpaXptWq.net]
- switch (b){
case FALSE: ... case TRUE: ... case ??? ... default ... } これで
- 558 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:07:19.16 ID:ugWNThcV.net]
- >>539
それは難しくいえば数学の集合論の話になる。 {0} と {非0} の二つの集合が有り、 if の条件式では、前者が偽、後者が真と評価される。 TRUEはどんな処理系であれ、必ず後者の集合の要素(元)になっていることだけは 保障されている。 なので、if ( b != 0 ) や、if (b) は正しいが、 if (b == TRUE) は絶対駄目、ということになる。
- 559 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:09:46.56 ID:GpaXptWq.net]
- >>543
BOOLなのに 1と2を区別したい事があるんだってさ
- 560 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:10:45.32 ID:ugWNThcV.net]
- if ( b == TRUE ) は、この条件式自体の動作は問題ないが、
b が TRUE ではないが、真である何らかの値を持っていたときに破綻してしまう。 BOOL b と書いた場合、本人が書いたプログラムでは b は、必ず TRUE か FALSE の二値に限って書くことになろうが、往々にして、 APIなどでは、「真」の意味で「非0」の値を返してくること関数が含まれて しまっている。 だから、勘違いや混乱が起き易い。 そのため、if ( b == TRUE ) というのは、絶対にやめておいたほうが良い書き方 となる。
- 561 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:16:58.01 ID:GpaXptWq.net]
- TRUE/FALSE以外を想定するなら
時と場合による TRUE/FALSEしか想定しないなら if (b) / if (!b) と書くべき
- 562 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:19:53.44 ID:TF4jiljH.net]
- 昔VB6からWinAPI呼ぶときの注意点として本で読んだ気がする
それboolじゃないよね?とは思った
- 563 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:20:59.38 ID:J3Qn0niW.net]
- >>545
じゃあ聞いてみよう。 bがTRUEと一致するかどうか判断する必要がある場合はどう書く?
- 564 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:29:21.05 ID:J3Qn0niW.net]
- >>546
排中律が成り立たないからFALSEでないことはTRUEを意味しない。 成功した場合にTRUE、失敗した場合にFALSEを返すという関数がある場合、成功したかどうかは FALSEでないことではなくTRUEと一致するかどうかで判断しなければならない。
- 565 名前:デフォルトの名無しさん [2020/02/09(日) 18:29:23.53 ID:cYNa4VVg.net]
- >>548
!(b != TRUE)。
- 566 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:30:08.13 ID:aEgJYC9i.net]
- >>548
架空のケースについてのお答えは差し控える つか糞コードかどうかはともかく>>509の方はMSDNの記述に準拠したコードという意味では 非の打ち所が無い(何かあってもMSDNのせいにできる
- 567 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:30:08.50 ID:6++kPC7v.net]
- >>539
> bがTRUEと一致するかどうか判断する それ自体がまずい(ことが多い)と指摘されてることにそろそろ気づこうよ…
- 568 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:36:27.78 ID:J3Qn0niW.net]
- >>552
>>514見ているのにいまだにそんなこと言っているのはなんでだろう
- 569 名前:デフォルトの名無しさん [2020/02/09(日) 18:42:52.19 ID:cYNa4VVg.net]
- いやちゃうねん。
- 570 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:59:34 ID:aEgJYC9i.net]
- intの取り得る値の集合に対し、TRUEの定義が-93でありかつそれ以外は偽と解釈をせよと仕様に書いてあったら
さすがに(b == TRUE)とか(b != TRUE)書くことを現実の選択肢として考慮せざるおえない もちろんそんな仕様が糞だが、仕様なのだからしようが無い 数学の本質は自由性にある、
- 571 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:07:50 ID:mORiFTgk.net]
- >>549
>>546 日本語読めますか?
- 572 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:15:36 ID:PT76WH2y.net]
- FALSEは定数
TRUEは範囲で観測によって収束する 適性に乏しいやつには厳しいよな
- 573 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:16:00 ID:mORiFTgk.net]
- boolからBOOLになってintになってた
- 574 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:16:09 ID:MeV8oXxA.net]
- 集合B={FALSE=0,
- 575 名前:TRUE=1} の場合 !FALSE=TRUE だが
B'={FALSE=0,TRUE1=1,TRUE2=2,TRUE3=3} の場合 !FALSE={TRUE1,TRUE2,TRUE3} となる しかし TRUE={TRUE1,TRUE2,TRUE3} と定義すると B''={FALSE=0,TRUE} となり、同型B≡B'が示されるため、B'をboolとみなすことは可能である ただし、比較演算子は集合として同値であるのか、集合に含まれるのかを示さなければならない b⊂B'(≡B) のとき、 b=FALSE は一意だが、b=TRUE は b=1∩b=2∩b=3 を示す [] - [ここ壊れてます]
- 576 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:17:37 ID:mORiFTgk.net]
- 数学関係ないのに数学ネタでひっぱってるヤツがいるな
IDは違うけど同じ人? 数学関係ないから
- 577 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:18:03 ID:6++kPC7v.net]
- >>553
>>514の話なら>> 509だし、そうでないAPIもたくさんあるから > それ自体がまずい(ことが多い)と指摘 されてるんだが、まじでわかってないのか? 引っ込みつかなくなってるだけだと思ってたが…
- 578 名前:デフォルトの名無しさん [2020/02/09(日) 19:18:39 ID:cYNa4VVg.net]
- ちゃうねんちゃうねん。
- 579 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:19:01 ID:MeV8oXxA.net]
- 訂正
b=1∩b=2∩b=3 →b=1∪b=2∪b=3
- 580 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:22:41 ID:qoRTNAXH.net]
- グローバル領域にインスタンスを作って、初期化はmain()の中でしたいとします。
で、初期化に必要な情報はmain()の中で初めて分かるとします。 こういうときってそのクラスのコンストラクタとしては何もしないものを作っておいて、初期化用の関数を別途用意するというのが普通ですか? インスタンスの宣言だけしておいてコンストラクタは後で呼ぶなんてできないですよね?
- 581 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:23:38 ID:mORiFTgk.net]
- ポインタにしとけ
- 582 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:29:17 ID:J3Qn0niW.net]
- >>561
逆に不思議だわ。 「成功時に0以外の値を返す」と「成功時にTRUEを返す」は違うということがなんで理解できないのか。
- 583 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:30:00 ID:aEgJYC9i.net]
- std::unique_ptr<T>の出番
- 584 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:30:50 ID:bHnzUNQO.net]
- apiの仕様見て適切に処理で終わる話だろこれ
- 585 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:37:32 ID:54+KBSAm.net]
- optionalの出番だろ
- 586 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:39:43 ID:OliK3lJl.net]
- >>568
同意
- 587 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:45:02 ID:6++kPC7v.net]
- >>566
どこから違うことを理解してないと思った? 思い込み激しすぎw
- 588 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:45:29 ID:6++kPC7v.net]
- >>568に一票
- 589 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:47:47 ID:mORiFTgk.net]
- もともとはboolの話だったのに
- 590 名前:デフォルトの名無しさん [2020/02/09(日) 19:49:14 ID:VD5bohdG.net]
- GetGlyphOutline などで文字画像を取り出そうとすると、フォントが持ってない文字は代わりの文字を出力してくる。
(例えば、昔の毛筆フォントでは「?(はしご高)」などはMSゴシックになる。) これを抑制したいので、そのフォントがグリフデータを持っているかどうか、調べる方法はありますでしょうか?
- 591 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:50:25 ID:mORiFTgk.net]
- C++の相談?
- 592 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:52:53 ID:J3Qn0niW.net]
- >>571
違いを理解しているなら>>566の後者はまさに>>539だということも理解できそうなもんだが。
- 593 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:54:35 ID:bHnzUNQO.net]
- >>574
ここよりwindows apiのスレのがいいんじゃないかな
- 594 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 20:00:40 ID:6++kPC7v.net]
- >>576
もしかして(ことが多い)っていう意味もわかってないのか?
- 595 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 20:05:04 ID:54+KBSAm.net]
- win32は変な仕様多いからAPIの仕様確認しないと罠にはまる
- 596 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 20:05:21 ID:J3Qn0niW.net]
- 多い方に合わせろって話でもないだろう。
>>568の通りそれぞれの仕様に合わせて適切に扱えってこと。
- 597 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 20:05:58 ID:PT76WH2y.net]
- >>579
ほんこれ
- 598 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 20:07:59 ID:54+KBSAm.net]
- GetModuleFileNameとか仕様作った奴のセンスを疑う
- 599 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 20:20:16 ID:6++kPC7v.net]
- >>580
誰も多い方に合わせろなんて言ってないのに… 単にそういうケースが多いって言うだけの話であることも説明しないとわからんのかな?w
- 600 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 20:30:08 ID:J3Qn0niW.net]
- なら問題ないケースもあることを理解してるわけだ。だとすると>>552で指摘してたのはなんだろうと。
- 601 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 20:34:19 ID:6++kPC7v.net]
- >>584
えっ? まだ(ことが多い)ってわざわざ
- 602 名前:書いてる意味がわからんのか?
まともな奴と会話してる時ならいちいち書かないんだが、ネット掲示板なのでわけわからん奴に絡まれないようにわざわざ書いたのに想定外の低能さんなの? [] - [ここ壊れてます]
- 603 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 20:46:39.77 ID:J3Qn0niW.net]
- >>585
つまり>>552は、まずい場合もあるしそうでない場合もあるという意味のない指摘なわけだ。 ようやく>>539に戻れたな。 >>537 マシとか言う以前にそもそも動作が違うんだが。 bがTRUEと一致するかどうか判断するのに他にどういう書き方をするというんだろう?
- 604 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 20:52:41.00 ID:mORiFTgk.net]
- bがTRUEと一致する条件の話はしてなくて
boolに対するif文をどう書くかの話だろ APIの使い方なら他スレでやって
- 605 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 20:55:58.33 ID:PT76WH2y.net]
- 余所でやれって、APIと言語仕様のズレの話だろ
正しい理解はどのようなものかという興味は スレ違いじゃねえぞ
- 606 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 21:03:28.51 ID:mORiFTgk.net]
- APIの正しい理解ならAPIのドキュメントを見れば良いのでは?
もともとのboolの話とは全く関係ないですね
- 607 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 21:05:18.68 ID:6++kPC7v.net]
- >>586
> つまり>>552は、まずい場合もあるしそうでない場合もあるという意味のない指摘なわけだ。 お前には意味ないのかもな… 必死になりすぎw
- 608 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 21:05:59.85 ID:J3Qn0niW.net]
- >>533に書いたが、boolじゃなくてBOOLの話をしているのになぜかboolと混同する人が
- 609 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 21:06:45.54 ID:mORiFTgk.net]
- boolの話題でbool以外を語るのはこんな感じ
内部的に固定小数点なfloatライブラリもあるぞ 内部的にvectorなmapライブラリもあるぞ
- 610 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 21:07:53.15 ID:mORiFTgk.net]
- BOOLも同じ
意味的なBOOLが前提 それ以外は特殊事情
- 611 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 21:21:02.28 ID:J3Qn0niW.net]
- >>590
意味のあるなしは主観だからいいとして、結局これ理解できたかな? >>537 マシとか言う以前にそもそも動作が違うんだが。 bがTRUEと一致するかどうか判断するのに他にどういう書き方をするというんだろう?
- 612 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 21:23:11.71 ID:6++kPC7v.net]
- >>594
>>552 低能は一度指摘されたことを何度も繰り返すw
- 613 名前:い mailto:sage [2020/02/09(日) 21:32:30.02 ID:Z95s67CZ.net]
- boolができるまでは
if (!!b) こういうイディオムもありましてね
- 614 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 21:42:44.86 ID:J3Qn0niW.net]
- >>576を理解しているなら
>bがTRUEと一致するかどうか判断するのに他にどういう書き方をするというんだろう? このような判断がが必要な場合があることも理解しているはずだろうが、 結局この質問には答えられない(答えたくない)ようだな。
- 615 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 22:05:36.89 ID:6++kPC7v.net]
- まだやってるのかよw
無能無限ループ乙
- 616 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 22:07:19.29 ID:EoI3r47q.net]
- あいかわらずしょーもない話題だと盛り上がるのな。
- 617 名前:い mailto:sage [2020/02/09(日) 22:16:06.44 ID:Z95s67CZ.net]
- goto、マクロ、BOOL
全部C言語の範疇なんだよなw おじさんがんばりすぎ
- 618 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 22:18:57.48 ID:aEgJYC9i.net]
- つか真理値の型であるbool型および
真理値の型としての名前を与えられたBOOL型の議論が Win32 APIの仕様という現実に汚染されてぐちゃらけてますな TRUEに幅が有る、なんていうおかしいことを言い出す香具師まで出る始末、!
- 619 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 22:23:19.21 ID:J3Qn0niW.net]
- 本当は昨日で終わっていたはずの話題なんだがな。
- 620 名前:◆QZaw55cn4c mailto:sage [2020/02/09(日) 22:31:58 ID:mQrdek/f.net]
- >>487
え?話の発端は >>438 でしょう? >>439 は >>438 の bool を BOOL にすげ替えたミスリードでしょう? >>491 もう一度いいますが、 >if (b == TRUE) と書くのはバグの原因になる のは b の型が int であれば、確かにそういえますが、b の型が bool ならばなんの問題もなにのでは? https://ideone.com/aL3agg 前提条件を全然考慮せず、条件反射的に >if (b == TRUE) と書くのはバグの原因になる と判断するのは老害的発想と私は断定しますね
- 621 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 22:33:23 ID:EiJfhZVq.net]
- >>602
お前が言うなよww
- 622 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 22:33:54 ID:aEgJYC9i.net]
- 一般論として、APIの呼び出しが成功しました、という情報にはそれ以上幅も糞も無い(成功した要因など知っても無駄
から、成功=TRUE、失敗=FALSEとする割付の下では、TRUEこそ単一値として規定されるべきブツに他ならない よって、一般論としては b == TRUEは言うほど糞ではないはずであった、
- 623 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 22:37:13 ID:aEgJYC9i.net]
- まあエラー要因を複数種類返したい、ということなら
成功判定は b == SUCCEEDEDでSUCCEEDEDでなかったらエラーコードが入っている、という INTかDWORD返しがストレートやったがな!(成功時非0を返す、とか言われるよりは
- 624 名前:デフォルトの名無しさん [2020/02/09(日) 22:42:00 ID:VD5bohdG.net]
- if( b == TRUE ) って、結局 if( b ) ってことだろ。
- 625 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 22:45:14 ID:Z95s67CZ.net]
- クソワロタ
口調も激変
- 626 名前:デフォルトの名無しさん [2020/02/10(月) 00:02:35 ID:SkPzv01G.net]
- >>555
ヘッダファイルの中で TRUE の値が -93 に #define で定義されていたとしても、C/C++ の仕様だと、0だけが偽で、0以外は真であることだけはANSI Cで決まっているので、それはない。
- 627 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 00:06:15 ID:hYCIpnsp.net]
- つまり、
#define TRUE (-93) はANSI Cの規格上非合法だからそれはない
- 628 名前:デフォルトの名無しさん [2020/02/10(月) 00:07:32 ID:SkPzv01G.net]
- >>548
その場合で、かつ、b が TRUE に一致するもの以外を除去したいなら if ( b == TRUE ) と書く以外には無い。 しかし、Win32 API の仕様でも、そのようなことを判定する必要があることはない ように通常、作られている。 何人かが指摘しているように、FALSE との判定は良いのだ。 TRUE との判定はまずい。
- 629 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 00:08:23 ID:hYCIpnsp.net]
- gotoといいBOOLといい、闇が深いな
裾野が広がれば、底辺は底なしカヨ、
|

|