- 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/ (日本語)
- 388 名前:はちみつ餃子 mailto:sage [2020/02/07(金) 19:46:55.57 ID:BIRgOLIs.net]
- >>375-377
そっかー (´・ω・`)
- 389 名前:デフォルトの名無しさん [2020/02/07(金) 19:55:08.75 ID:yxrGSGnH.net]
- はちみつ先生は何を作ってるんですか?
- 390 名前:はちみつ餃子 mailto:sage [2020/02/07(金) 20:28:02.80 ID:BIRgOLIs.net]
- >>379
ゲームのチートツールとか。 汎用的な便利なツールは色々とあるけど、個別のソフトをいじるには行き届かないこともあるので。 念のため言っとくけど買い切りの RPG かフリーゲームだけ。 ネットゲームはやってないよ。 ちなみにそのツールは公開してない。 その他に作った有用そうなものは公開してるんで、身バレするから言えない。
- 391 名前:デフォルトの名無しさん [2020/02/07(金) 20:52:16.35 ID:yxrGSGnH.net]
- >>380
そうなんですか。 ずいぶん詳しいのに仕事じゃないというから不思議に思ってました。
- 392 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 20:56:00.11 ID:jtk/IwGo.net]
- つまり、はちみつ某は、なんの思い入れもない他人のソースを読まされる身になった経験が少ないわけか。
- 393 名前:デフォルトの名無しさん [2020/02/07(金) 21:02:52.46 ID:yxrGSGnH.net]
- アルゴリズム考えるときは、図を必ず書くと思うんだけど、皆さんは何を使ってますか?
いまは紙と鉛筆使ってるんだけど、探すの大変だから、ソフトに変えたい。
- 394 名前:はちみつ餃子 mailto:sage [2020/02/07(金) 21:05:36.03 ID:BIRgOLIs.net]
- >>382
せやな。 そんなわけで、他人のバイナリを見る機会はあるけどソースはそれほどでもって感じかも。 結果的に読まなきゃならないことはあるけど、所詮は趣味だから嫌になったらいつでも止められるし、急がなくてもいいし。 プレッシャーに晒されながらクソみたいなソースを読むってことはない。
- 395 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 21:05:49.82 ID:E/TdO4KU.net]
- たまに書く方がいい
字を忘れる
- 396 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 21:09:26 ID:y0pPi+zA.net]
- C++なんざ仕事で嫌々書かされるだけの言語だと思ったけど
趣味で使っちゃう子もおるんやな
- 397 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2020/02/07(金) 21:12:24 ID:BIRgOLIs.net]
- >>383
曖昧なところから思考を整理するなら紙と鉛筆でいいと思うけど、 それなりに書式の整ったようにするなら PlantUML とか。 GUI で自由にってことなら Dyna
- 398 名前:mic Draw くらいが手頃かもしれない。 []
- [ここ壊れてます]
- 399 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 21:15:03 ID:jtk/IwGo.net]
- 完全な趣味目的でC++を触る変態はそうそういないと思う。
- 400 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 21:16:30 ID:52vnIbYM.net]
- >>386
禿1読んで信者になった変態もおるんやで
- 401 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2020/02/07(金) 21:16:36 ID:BIRgOLIs.net]
- >>386
ゲームのチートとかするために 既存のプロセスに割り込んだりする処理を書こうと思うと C か C++ くらいしかまともな選択肢なくね? C で足りるなら C で済ませることもあるけど、もうちょっと高級なことがしたくなったら C++ ってのは妥当な選択肢というか、唯一解でしょ。 まあ近頃は Rust にも興味があるけど……。
- 402 名前:デフォルトの名無しさん [2020/02/07(金) 21:37:46 ID:yxrGSGnH.net]
- >>387
見てみます。
- 403 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 22:05:07.56 ID:8FC0VQS8.net]
- >>375
>>377 男ならカッコつけろ
- 404 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 22:14:56.42 ID:8FC0VQS8.net]
- カッコつけろって人
付ける付けないの基準はコンパイラの警告? 完全に優先順位を覚えてる人から見ると カッコが多いと見にくいんだよ a == 0 || b != 0 a * b + 1 *a[i] *a++ こんなのにカッコつけてたら えっ?何か意味があるの?って考えてしまう
- 405 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 22:26:24.78 ID:52vnIbYM.net]
- > えっ?何か意味があるの?
いや、「あーまた面倒くさいやつ来やがった」だよ
- 406 名前:デフォルトの名無しさん [2020/02/07(金) 22:52:28.44 ID:GxNDg+Fe.net]
- 実務経験1年で月収80万稼げるエンジニアになった理由
https://www.youtube.com/watch?v=DrbbyGsHQic 意識が低いエンジニアこそフリーランスになれ https://www.youtube.com/watch?v=nSEaAJlgjbQ フリーランスエンジニアの週3労働ってどんな感じ? https://www.youtube.com/watch?v=8yjoDCdbzMc ぼくがスキルのない社畜ならこうやって脱する https://www.youtube.com/watch?v=aae8xxbUlMM 初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話 https://www.youtube.com/watch?v=U0OCGRVLFsM プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説 https://www.youtube.com/watch?v=iBOeiSKBIW8 貧乏人こそ社会不適合者 https://www.youtube.com/watch?v=O3BT72BIBJI 元ド貧乏が教える】貧乏を抜け出すための2つの考え方 https://www.youtube.com/watch?v=IRrCgTy3ckc より良いオファー貰ってるのに転職しないとか何考えてるの? https://www.youtube.com/watch?v=i0J6uRhlj7o
- 407 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 22:55:11.74 ID:NUR9HIfz.net]
- 優先順位を完全に把握しているなら機能的には意味のない括弧だと理解しているんだろうが
そのうえで疑問に思った「意味」って、どんなものを想定しているんだろう。 「優先順位を完全に把握していない人が間違えないように」くらいの意味しか思いつかないが。
- 408 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 22:59:52.10 ID:8FC0VQS8.net]
- (a + b + c) + (d + e)
同じ型の整数5個を足すのにこんなカッコが付いてたらどう思う?
- 409 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 23:17:13.31 ID:NUR9HIfz.net]
- >>393と言ってる趣旨が違ってないか?
実際に>>397みたいなコードを見たことがあるの?
- 410 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 23:24:04.71 ID:8FC0VQS8.net]
- 同じ印象だって話
ちなみに、 わざわざ>>397のようなカッコを付ける時はある
- 411 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 23:24:42.60 ID:jtk/IwGo.net]
- 協業できない人があれこれC++について論じるのは害でしかない。
- 412 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 23:31:57.60 ID:Uosz/SQM.net]
- まずプログラム言語っての読み書きする人間のためにあるって大前提忘れてるか自覚してないやつ多いな
- 413 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 23:34:58 ID:NUR9HIfz.net]
- >>399
マイナスが混ざっているならわからんでもないが、>>393で言っている優先順位の話とは関係ないように思うが?
- 414 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 23:36:27 ID:Fqx20dQ+.net]
- >>397のようなコードを見てどう思う?
- 415 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 23:39:04 ID:jtk/IwGo.net]
- 見やすいかどうかは
- 416 名前:主観なので、他人や未来の自分が読んで誤解しないようにすることが肝でしょ。
まさか、「数値リテラルの桁区切り文字」にまでかみついたりしないよね? https://cpprefjp.github.io/lang/cpp14/digit_separators.html [] - [ここ壊れてます]
- 417 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 23:41:49 ID:yMJLmx4v.net]
- 主観で見やすい表記にする
その為にコンパイラの警告を無視したり切ったりする 何も問題無い
- 418 名前:い mailto:sage [2020/02/08(土) 00:06:08.38 ID:Wxs8WSK9.net]
- >>374
> >>371 > 変な作法が追加されることなんて良くあるんだぞ。 > 今じゃ gcc や clang で -Wall オプションを付けたら > a || b && c > みたいな式にすら警告が出る。 > 優先順位を間違えやすいとこだから括弧で明示した方が良いんだと! > 演算子の優先順位くらい把握しとるわ! 把握してても間違えやすいからだと思うね 実際にはa,b,cには比較演算子を使った式が入ることが多いだろう そうするとけっこうな長さになったりする で全体の構造が見えにくくなる そりゃ書いてる真っ最中は問題ないさ しかし後から読んだときにすぐ理解できなかったり、手を加えるときに間違えたりする warningを出すべきかは議論の余地があると思うけど、 出すべきと考える理由はわかる
- 419 名前:デフォルトの名無しさん [2020/02/08(土) 00:38:17.76 ID:RKzyJDHj.net]
- それはエディタの機能でかっこを表示したら良いのでは。
- 420 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 00:57:11 ID:GuOhFnKw.net]
- 主観は重要だろう。
重要でないなら全部アセンブラで書けや。 客観的には最も性能の出る言語だぞ。
- 421 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 01:23:28 ID:Mdfh1mSi.net]
- &,|とか&&,||は*,+の関係と同じだから括弧つける方が冗長で分かりづらくなると思うんだが
- 422 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 01:29:21 ID:zzucbZgG.net]
- 一度書いた四則演算の数式を書き換えることはほとんどないけど、bool論理演算は頻繁に書き換えるでしょ。
- 423 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 01:30:14 ID:zzucbZgG.net]
- 素人多いね、このスレ。
- 424 名前:デフォルトの名無しさん [2020/02/08(土) 01:45:08 ID:RKzyJDHj.net]
- >>411
プロの意見だとどうなりますか?
- 425 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 01:52:50 ID:JKzazDKJ.net]
- 数式を遅延評価するオブジェクトを作れば
演算子のオーバーロードで演算子の優先順位を変えられるも同然
- 426 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 01:53:57 ID:JKzazDKJ.net]
- テクニックの限りを尽くしてbetter C++を実現したら良い
- 427 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 01:54:26 ID:zzucbZgG.net]
- プロなら抽象的な質問には回答しないでしょ。時間泥棒にあう。
「もっと具体的に書いてくれ」と逆質問する義理がないならなおのこと。
- 428 名前:デフォルトの名無しさん [2020/02/08(土) 02:00:57 ID:RKzyJDHj.net]
- 自分の職業の板には一切いかないから、ここも職業プログラマはいないと思う。
ここに書き込む意味が無いと思うんだよな。
- 429 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 02:02:06 ID:uvgcwZ2m.net]
- >>395
グロ
- 430 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 02:06:09 ID:Mdfh1mSi.net]
- 職業プログラマって?
仕事でソフト作るし、客先に納入したりもするけどプログラマではないな
- 431 名前:デフォルトの名無しさん [2020/02/08(土) 02:08:10.84 ID:RKzyJDHj.net]
- たとえば、外科医が匿名の掲示板で効果的な治療法について話し合ったりしないでしょ。
治療法について話し合ってる人は患者だ。 だから、ここにもプログラマはいないはず。
- 432 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 02:28:45.19 ID:zzucbZgG.net]
- プロの対義語はアマ。素人の対義語は玄人。
今時点のこのスレの回答者が素人同然の低いレベルであることは、否定できない。 例えば一週間後は違うかもしれない。もっともまともな回答者がこのスレに常駐するようになるかもしれない。
- 433 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 06:55:22.73 ID:ARbKbNEu.net]
- >>374
-Wallとは別に「お節介は一切禁止」というオプション欲しいね
- 434 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 07:15:13.17 ID:N5LmiSOJ.net]
- 特定の警告だけ無効に出来るのが普通だよ
- 435 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 07:33:56.27 ID:gtTyaGQ0.net]
- 警告は全ておせっかい
- 436 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 07:53:55.28 ID:+X9VZvVK.net]
- >>374はわかるけど
>>393, >>397で警告出すコンパイラとか見たこと無い
- 437 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 08:04:33 ID:gtTyaGQ0.net]
- 私も見たことは無い
でも他の演算子でも同じこと 1u << n+1 こんなのは良く使う いちいちカッコを付けた方が分かりにくい
- 438 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 08:11:34 ID:gtTyaGQ0.net]
- カッコを付けろって結局警告が出るから付けろってことで
見やすさとか無視した意見が多い if ((a==(b + 1))||(a==(b + 2))) こんな感じに書くヤツがいるんだよ実際
- 439 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 08:14:44 ID:ARbKbNEu.net]
- 警告の出方がコンパイラによって違うわけで
特定のコンパイラの警告に対応するということなら #pragma使うのと同じだね
- 440 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 08:26:00 ID:GuOhFnKw.net]
- >>426
それはつけた方がいいだろ。 見づらいのはスペースの使い方に問題がある。
- 441 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 08:42:00 ID:gtTyaGQ0.net]
- えっ?
まじで言ってる? if (a == b+1 || a == b+2) これだと一瞬で理読める 俺が特殊?
- 442 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 09:05:35 ID:LleYumKd.net]
- >>428
演算子の優先順位くらい勉強しておけよ 手間かけさせんな
- 443 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 09:08:26 ID:LleYumKd.net]
- >>408
やはりアホだったかコイツw
- 444 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 09:10:24 ID:ktYbgjbO.net]
- >>366
手抜きがどうこうと最もらしいこと言ってるけど >>359で言ってるのは「警告に対処するのが面倒くさい」ってことだろ? 仕事で手を抜くべき場所とそうでない場所、みたいな次元の話じゃない あと警告レベルは最大にしたりすると標準ライブラリにすら警告出るけど、標準より下げるのは良くない そういうこと平気でやってると必ず後で本格的に面倒くさい原因不明のバグが頻発する
- 445 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 09:29:30 ID:JKzazDKJ.net]
- 256倍バグを出しても256倍早く潰したら
問題無くね?
- 446 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 09:30:03 ID:GuOhFnKw.net]
- if( a == (b+1) || a == (b+2) )
これくらい書いてもバチ当たらんだろ。 しょうもないことでドヤってる馬鹿が開発では一番有害。
- 447 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 09:32:02.56 ID:pUDxcHmc.net]
- >>433
256倍もバグ出すような奴と仕事したくない
- 448 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 09:39:01 ID:JKzazDKJ.net]
- >>435
先方も256倍遅い奴と仕事したくないと思うてはるで
- 449 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 10:08:44 ID:Di3wk8ih.net]
- >>433
全部潰せるならね
- 450 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 10:24:14 ID:YOfaZC8k.net]
- じゃあ次は
bool b; // 略 if (b == true) の話でもする?w 俺はこれが一番のキチガイ記法だと思ってる
- 451 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 10:29:50 ID:yr4lhGWD.net]
- 勢いあまってこれも否定しちゃう
BOOL b; if (b == TRUE)
- 452 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 10:33:51 ID:JKzazDKJ.net]
- >>439
b==-1が成立することが有るのはウィンドーズのバグ
- 453 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 10:39:25 ID:yaVA2/v3.net]
- if (a = b+1 || a == b+2)
こう書いたとき気づきづらい 手間をかけるのはそれ自体だけでなくいろいろ見る機会になる
- 454 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 11:00:58 ID:Di3wk8ih.net]
- >>438
if(a != true){ return true; } else { return false; } みたいなコード見たときは流石に絶句したわw
- 455 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 11:05:13 ID:Di3wk8ih.net]
- >>441
それはまた別な話 ところで>>374は if(a = b){ みたいなコードに対する警告も不要と言うんだろうか?
- 456 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 11:09:08 ID:LleYumKd.net]
- >>441
学習が足りてないだけ 括弧なんて要らん 理解できるレベルまで進化しろ原始人
- 457 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 11:17:32 ID:yr4lhGWD.net]
- >>440
で、 if (b) と書いちゃっても自分のバグじゃなくてWindowsのバグと主張する
- 458 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 11:39:54.89 ID:pjdiRHlo.net]
- >>445
C/C++ では、b が「非0」、つまり「0 以外」だとすべて真(true) と考えるのが伝統。 なお、余計に混乱を招くだけかもしれないが、 数学的には、b == true とは、単なる数として完全一致であることを調べる演算子ではなく、集合的に、b ∈ {非0} であるかどうかを調べる演算子だとみなすことも出来る。 ところが、C/C++ では、== 演算子は単なる数としての一致を調べる演算子で、 かつ、TRUE は通常 1 にマクロ定義されているので、 b == true が、b が完全に 1 に一致しているかどうかを調べる演算子になっている。 なので、if (b) と書く方が正しく、if ( b == TRUE ) と書くのは間違い。
- 459 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 11:53:39.76 ID:yr4lhGWD.net]
- >C/C++ では、b が「非0」、つまり「0 以外」だとすべて真(true) と考えるのが伝統。
名前が紛らわしいがBOOLは真偽二値じゃないんだからそれは関係ない。 TRUEかどうか判定する必要があるなら if (b) は明らかに間違い。
- 460 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 12:11:53 ID:JKzazDKJ.net]
- 回避して使うかどうかとは無関係にバグはバグじゃわ;
- 461 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 12:27:48 ID:yr4lhGWD.net]
- >>439はジョークのつもりだったが、実際に勢い余った人が2人も現れるとはw
- 462 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 12:47:51 ID:YOfaZC8k.net]
- >>442
なにその想像を超えたキチガイ >>449 アンタの親切心が何人かの明日を救ったねw
- 463 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 12:53:53 ID:JKzazDKJ.net]
- プログラミングはアートやからな
狂気もまた創造の源泉、
- 464 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 12:56:37 ID:zzucbZgG.net]
- >>442,450
対話デバッグでaに応じて実行をブレークしたかった人が残したデバッグの痕跡だろうね。 ソースを他人に公開する際にはブレークポイントの情報はなくなるから、他人には意味不明だけど。
- 465 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 12:58:48 ID:zzucbZgG.net]
- >>451
狂気じゃなくて修正の積み重ね。少しづつ修正していると大ポカに気づけない。 だからこそ親切なコンパイラの警告に従う謙虚さが大切になる。
- 466 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 13:32:28.54 ID:gtTyaGQ0.net]
- >>452
そっち? a != true じゃなくて?
- 467 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 14:33:50 ID:pjdiRHlo.net]
- BOOL b に対して、正しくはこう :
if ( b ) // 良い if ( b != 0 ) // 良い if ( b == TRUE ) // 駄目
- 468 名前:デフォルトの名無しさん [2020/02/08(土) 14:48:48 ID:v1IBJgnW.net]
- >>383
graphviz / python
- 469 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 14:51:43 ID:P2cF6ghb.net]
- graphvizは主要なLinuxの標準リポジトリに入ってるから助かる
- 470 名前:デフォルトの名無しさん [2020/02/08(土) 14:52:17 ID:v1IBJgnW.net]
- >>403
浮動小数点数なら桁落ちとか気にしてんのかなーとか勘繰る
- 471 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 15:10:32 ID:pjdiRHlo.net]
- >>403
整数の場合だと、括弧を付けてある部分に何らかのまとまった意味があるのかも知れない。 数学や物理学では、計算を減らすために式変形していくが、最終的な式は元々の意味が分からなくなってしまうことがある。 その場合には括弧で囲ったくらいで意味が分かり易くなることは少ない。 しかし、そのケースの場合は、括弧で括ると何か意味が分かり易くなると考えた間ロウ製がある。
- 472 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 15:11:02 ID:pjdiRHlo.net]
- >>459
間ロウ製 ---> 可能性
- 473 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 15:12:02 ID:JKzazDKJ.net]
- >>455
>if ( b == TRUE ) // 駄目 -1をTRUE扱いしたくないのであればこれが唯一正しい
- 474 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 15:45:10 ID:yr4lhGWD.net]
- MSDNの書き間違いかもしれないが、Win32 APIの一部にも「成功時はTRUEを返す」という
仕様の関数があるんだよな。
- 475 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 15:54:04 ID:pjdiRHlo.net]
- >>461
そもそも、-1 は TRUE 扱いすると言うのが C/C++ の伝統や文化。 -1 と TRUE を分けて扱うのは、特殊な独自仕様。 >>462 Win32 API の一部どころか、ハンドル値を返す以外のほとんど全ての関数が、 成功すれば TRUE を返す。
- 476 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 16:07:20 ID:yr4lhGWD.net]
- おいおい、#define TRUE 1のTRUEと真(true)の区別がぐちゃぐちゃだぞ。
BOOLを返すWin32 APIの多くは「成功時はFALSE(0)以外の値を返す」という仕様になっている。
- 477 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 16:16:01 ID:24Q9Tmjg.net]
- 宗派論争だな
- 478 名前:デフォルトの名無しさん [2020/02/08(土) 16:19:44 ID:RKzyJDHj.net]
- C++にはtrueがあるので積極的に使っていこうと思います。
- 479 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 16:36:41.39 ID:pjdiRHlo.net]
- >>464
なるほど確かに Win32 の BOOL LineTo(HDC hdc, int nXEnd, int nYEnd)の 戻り値は、 If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. のように、成功時には 1 や TRUE ではなく、「非0」を返すと書いてある。
- 480 名前:デフォルトの名無しさん [2020/02/08(土) 16:45:19 ID:RKzyJDHj.net]
- キャッシュかキャッシュでないかで速度が変わる。
これは驚き。
- 481 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 16:50:34 ID:LleYumKd.net]
- バカ==TRUE
- 482 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 17:21:59 ID:+a4Pmd4C.net]
- ○ if(b) if(!b)
○ if(b == FALSE) if(b != FALSE) × if(b == TRUE) if(b != TRUE) WinAPI使いには常識だと思ってたんだが
- 483 名前:デフォルトの名無しさん [2020/02/08(土) 17:32:20 ID:RKzyJDHj.net]
- そういうのをみんなで共有しましょうって事で、たらこさんが2chを作ったんですよ。
- 484 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 17:40:43.90 ID:yr4lhGWD.net]
- >>470
常識というか思い込み。 大半のFALSE/FALSE以外を返す関数なら上で良いが、>>462のようにTRUEを返すなら当然 TRUEと比較しなきゃ正しくない。
- 485 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 17:57:14.84 ID:+a4Pmd4C.net]
- 本当にそんなのあるの?
戻り値BOOLでFALSE(0)とTRUE(1)以外の値をTRUEと違う意味を表現するために意図的に返す奴があるってこと? 具体例どうぞ
- 486 名前: mailto:sage [2020/02/08(土) 18:25:19.22 ID:JRIqyhqH.net]
- >>446
>C/C++ では、b が「非0」、つまり「0 以外」だとすべて真(true) と考えるのが伝統。 >if ( b == TRUE ) と書くのは間違い。 それは b の型が int だったら、そのとおりだけれども、>>438 をみるかぎり bool b なんでしょう? はっ!これが老害というやつですか…
- 487 名前:はちみつ餃子 mailto:sage [2020/02/08(土) 18:26:30.54 ID:2SU4KPt5.net]
- >>473
GetMessage という基本的な API からして変則的だから……
- 488 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 18:31:14 ID:yr4lhGWD.net]
- >>462に書いたMSDNのは単にドキュメントの間違いという可能性もあるけどね。
それとは別に、TRUE/FALSe以外に-1を返すAPIがあるのは有名だろう。 いずれにしても仕様をちゃんと確認してそれに従った扱いをすべきで、思い込みは禁物ってこと。
|

|