C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part147
https://mevius.5ch.net/test/read.cgi/tech/1576659413/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
C++相談室 part148
■ このスレッドは過去ログ倉庫に格納されています
2020/01/31(金) 20:54:06.26ID:Nt0XFA2s
407デフォルトの名無しさん
2020/02/08(土) 00:38:17.76ID:RKzyJDHj それはエディタの機能でかっこを表示したら良いのでは。
408デフォルトの名無しさん
2020/02/08(土) 00:57:11.32ID:GuOhFnKw 主観は重要だろう。
重要でないなら全部アセンブラで書けや。
客観的には最も性能の出る言語だぞ。
重要でないなら全部アセンブラで書けや。
客観的には最も性能の出る言語だぞ。
409デフォルトの名無しさん
2020/02/08(土) 01:23:28.05ID:Mdfh1mSi &,|とか&&,||は*,+の関係と同じだから括弧つける方が冗長で分かりづらくなると思うんだが
410デフォルトの名無しさん
2020/02/08(土) 01:29:21.53ID:zzucbZgG 一度書いた四則演算の数式を書き換えることはほとんどないけど、bool論理演算は頻繁に書き換えるでしょ。
411デフォルトの名無しさん
2020/02/08(土) 01:30:14.91ID:zzucbZgG 素人多いね、このスレ。
412デフォルトの名無しさん
2020/02/08(土) 01:45:08.63ID:RKzyJDHj >>411
プロの意見だとどうなりますか?
プロの意見だとどうなりますか?
413デフォルトの名無しさん
2020/02/08(土) 01:52:50.03ID:JKzazDKJ 数式を遅延評価するオブジェクトを作れば
演算子のオーバーロードで演算子の優先順位を変えられるも同然
演算子のオーバーロードで演算子の優先順位を変えられるも同然
414デフォルトの名無しさん
2020/02/08(土) 01:53:57.02ID:JKzazDKJ テクニックの限りを尽くしてbetter C++を実現したら良い
415デフォルトの名無しさん
2020/02/08(土) 01:54:26.60ID:zzucbZgG プロなら抽象的な質問には回答しないでしょ。時間泥棒にあう。
「もっと具体的に書いてくれ」と逆質問する義理がないならなおのこと。
「もっと具体的に書いてくれ」と逆質問する義理がないならなおのこと。
416デフォルトの名無しさん
2020/02/08(土) 02:00:57.81ID:RKzyJDHj 自分の職業の板には一切いかないから、ここも職業プログラマはいないと思う。
ここに書き込む意味が無いと思うんだよな。
ここに書き込む意味が無いと思うんだよな。
417デフォルトの名無しさん
2020/02/08(土) 02:02:06.13ID:uvgcwZ2m >>395
グロ
グロ
418デフォルトの名無しさん
2020/02/08(土) 02:06:09.28ID:Mdfh1mSi 職業プログラマって?
仕事でソフト作るし、客先に納入したりもするけどプログラマではないな
仕事でソフト作るし、客先に納入したりもするけどプログラマではないな
419デフォルトの名無しさん
2020/02/08(土) 02:08:10.84ID:RKzyJDHj たとえば、外科医が匿名の掲示板で効果的な治療法について話し合ったりしないでしょ。
治療法について話し合ってる人は患者だ。
だから、ここにもプログラマはいないはず。
治療法について話し合ってる人は患者だ。
だから、ここにもプログラマはいないはず。
420デフォルトの名無しさん
2020/02/08(土) 02:28:45.19ID:zzucbZgG プロの対義語はアマ。素人の対義語は玄人。
今時点のこのスレの回答者が素人同然の低いレベルであることは、否定できない。
例えば一週間後は違うかもしれない。もっともまともな回答者がこのスレに常駐するようになるかもしれない。
今時点のこのスレの回答者が素人同然の低いレベルであることは、否定できない。
例えば一週間後は違うかもしれない。もっともまともな回答者がこのスレに常駐するようになるかもしれない。
421デフォルトの名無しさん
2020/02/08(土) 06:55:22.73ID:ARbKbNEu >>374
-Wallとは別に「お節介は一切禁止」というオプション欲しいね
-Wallとは別に「お節介は一切禁止」というオプション欲しいね
422デフォルトの名無しさん
2020/02/08(土) 07:15:13.17ID:N5LmiSOJ 特定の警告だけ無効に出来るのが普通だよ
423デフォルトの名無しさん
2020/02/08(土) 07:33:56.27ID:gtTyaGQ0 警告は全ておせっかい
424デフォルトの名無しさん
2020/02/08(土) 07:53:55.28ID:+X9VZvVK425デフォルトの名無しさん
2020/02/08(土) 08:04:33.44ID:gtTyaGQ0 私も見たことは無い
でも他の演算子でも同じこと
1u << n+1
こんなのは良く使う
いちいちカッコを付けた方が分かりにくい
でも他の演算子でも同じこと
1u << n+1
こんなのは良く使う
いちいちカッコを付けた方が分かりにくい
426デフォルトの名無しさん
2020/02/08(土) 08:11:34.30ID:gtTyaGQ0 カッコを付けろって結局警告が出るから付けろってことで
見やすさとか無視した意見が多い
if ((a==(b + 1))||(a==(b + 2)))
こんな感じに書くヤツがいるんだよ実際
見やすさとか無視した意見が多い
if ((a==(b + 1))||(a==(b + 2)))
こんな感じに書くヤツがいるんだよ実際
427デフォルトの名無しさん
2020/02/08(土) 08:14:44.94ID:ARbKbNEu 警告の出方がコンパイラによって違うわけで
特定のコンパイラの警告に対応するということなら
#pragma使うのと同じだね
特定のコンパイラの警告に対応するということなら
#pragma使うのと同じだね
428デフォルトの名無しさん
2020/02/08(土) 08:26:00.28ID:GuOhFnKw429デフォルトの名無しさん
2020/02/08(土) 08:42:00.85ID:gtTyaGQ0 えっ?
まじで言ってる?
if (a == b+1 || a == b+2)
これだと一瞬で理読める
俺が特殊?
まじで言ってる?
if (a == b+1 || a == b+2)
これだと一瞬で理読める
俺が特殊?
430デフォルトの名無しさん
2020/02/08(土) 09:05:35.53ID:LleYumKd431デフォルトの名無しさん
2020/02/08(土) 09:08:26.73ID:LleYumKd >>408
やはりアホだったかコイツw
やはりアホだったかコイツw
432デフォルトの名無しさん
2020/02/08(土) 09:10:24.21ID:ktYbgjbO433デフォルトの名無しさん
2020/02/08(土) 09:29:30.06ID:JKzazDKJ 256倍バグを出しても256倍早く潰したら
問題無くね?
問題無くね?
434デフォルトの名無しさん
2020/02/08(土) 09:30:03.39ID:GuOhFnKw if( a == (b+1) || a == (b+2) )
これくらい書いてもバチ当たらんだろ。
しょうもないことでドヤってる馬鹿が開発では一番有害。
これくらい書いてもバチ当たらんだろ。
しょうもないことでドヤってる馬鹿が開発では一番有害。
435デフォルトの名無しさん
2020/02/08(土) 09:32:02.56ID:pUDxcHmc >>433
256倍もバグ出すような奴と仕事したくない
256倍もバグ出すような奴と仕事したくない
436デフォルトの名無しさん
2020/02/08(土) 09:39:01.42ID:JKzazDKJ >>435
先方も256倍遅い奴と仕事したくないと思うてはるで
先方も256倍遅い奴と仕事したくないと思うてはるで
437デフォルトの名無しさん
2020/02/08(土) 10:08:44.51ID:Di3wk8ih >>433
全部潰せるならね
全部潰せるならね
438デフォルトの名無しさん
2020/02/08(土) 10:24:14.91ID:YOfaZC8k じゃあ次は
bool b;
// 略
if (b == true)
の話でもする?w
俺はこれが一番のキチガイ記法だと思ってる
bool b;
// 略
if (b == true)
の話でもする?w
俺はこれが一番のキチガイ記法だと思ってる
439デフォルトの名無しさん
2020/02/08(土) 10:29:50.84ID:yr4lhGWD 勢いあまってこれも否定しちゃう
BOOL b;
if (b == TRUE)
BOOL b;
if (b == TRUE)
440デフォルトの名無しさん
2020/02/08(土) 10:33:51.20ID:JKzazDKJ >>439
b==-1が成立することが有るのはウィンドーズのバグ
b==-1が成立することが有るのはウィンドーズのバグ
441デフォルトの名無しさん
2020/02/08(土) 10:39:25.53ID:yaVA2/v3 if (a = b+1 || a == b+2)
こう書いたとき気づきづらい
手間をかけるのはそれ自体だけでなくいろいろ見る機会になる
こう書いたとき気づきづらい
手間をかけるのはそれ自体だけでなくいろいろ見る機会になる
442デフォルトの名無しさん
2020/02/08(土) 11:00:58.51ID:Di3wk8ih443デフォルトの名無しさん
2020/02/08(土) 11:05:13.10ID:Di3wk8ih444デフォルトの名無しさん
2020/02/08(土) 11:09:08.44ID:LleYumKd445デフォルトの名無しさん
2020/02/08(土) 11:17:32.81ID:yr4lhGWD >>440
で、 if (b) と書いちゃっても自分のバグじゃなくてWindowsのバグと主張する
で、 if (b) と書いちゃっても自分のバグじゃなくてWindowsのバグと主張する
446デフォルトの名無しさん
2020/02/08(土) 11:39:54.89ID:pjdiRHlo >>445
C/C++ では、b が「非0」、つまり「0 以外」だとすべて真(true) と考えるのが伝統。
なお、余計に混乱を招くだけかもしれないが、
数学的には、b == true とは、単なる数として完全一致であることを調べる演算子ではなく、集合的に、b ∈ {非0} であるかどうかを調べる演算子だとみなすことも出来る。
ところが、C/C++ では、== 演算子は単なる数としての一致を調べる演算子で、
かつ、TRUE は通常 1 にマクロ定義されているので、
b == true が、b が完全に 1 に一致しているかどうかを調べる演算子になっている。
なので、if (b) と書く方が正しく、if ( b == TRUE ) と書くのは間違い。
C/C++ では、b が「非0」、つまり「0 以外」だとすべて真(true) と考えるのが伝統。
なお、余計に混乱を招くだけかもしれないが、
数学的には、b == true とは、単なる数として完全一致であることを調べる演算子ではなく、集合的に、b ∈ {非0} であるかどうかを調べる演算子だとみなすことも出来る。
ところが、C/C++ では、== 演算子は単なる数としての一致を調べる演算子で、
かつ、TRUE は通常 1 にマクロ定義されているので、
b == true が、b が完全に 1 に一致しているかどうかを調べる演算子になっている。
なので、if (b) と書く方が正しく、if ( b == TRUE ) と書くのは間違い。
447デフォルトの名無しさん
2020/02/08(土) 11:53:39.76ID:yr4lhGWD >C/C++ では、b が「非0」、つまり「0 以外」だとすべて真(true) と考えるのが伝統。
名前が紛らわしいがBOOLは真偽二値じゃないんだからそれは関係ない。
TRUEかどうか判定する必要があるなら if (b) は明らかに間違い。
名前が紛らわしいがBOOLは真偽二値じゃないんだからそれは関係ない。
TRUEかどうか判定する必要があるなら if (b) は明らかに間違い。
448デフォルトの名無しさん
2020/02/08(土) 12:11:53.25ID:JKzazDKJ 回避して使うかどうかとは無関係にバグはバグじゃわ;
449デフォルトの名無しさん
2020/02/08(土) 12:27:48.00ID:yr4lhGWD >>439はジョークのつもりだったが、実際に勢い余った人が2人も現れるとはw
450デフォルトの名無しさん
2020/02/08(土) 12:47:51.09ID:YOfaZC8k451デフォルトの名無しさん
2020/02/08(土) 12:53:53.46ID:JKzazDKJ プログラミングはアートやからな
狂気もまた創造の源泉、
狂気もまた創造の源泉、
452デフォルトの名無しさん
2020/02/08(土) 12:56:37.29ID:zzucbZgG453デフォルトの名無しさん
2020/02/08(土) 12:58:48.67ID:zzucbZgG454デフォルトの名無しさん
2020/02/08(土) 13:32:28.54ID:gtTyaGQ0455デフォルトの名無しさん
2020/02/08(土) 14:33:50.82ID:pjdiRHlo BOOL b に対して、正しくはこう :
if ( b ) // 良い
if ( b != 0 ) // 良い
if ( b == TRUE ) // 駄目
if ( b ) // 良い
if ( b != 0 ) // 良い
if ( b == TRUE ) // 駄目
456デフォルトの名無しさん
2020/02/08(土) 14:48:48.31ID:v1IBJgnW >>383
graphviz / python
graphviz / python
457デフォルトの名無しさん
2020/02/08(土) 14:51:43.97ID:P2cF6ghb graphvizは主要なLinuxの標準リポジトリに入ってるから助かる
458デフォルトの名無しさん
2020/02/08(土) 14:52:17.78ID:v1IBJgnW >>403
浮動小数点数なら桁落ちとか気にしてんのかなーとか勘繰る
浮動小数点数なら桁落ちとか気にしてんのかなーとか勘繰る
459デフォルトの名無しさん
2020/02/08(土) 15:10:32.80ID:pjdiRHlo >>403
整数の場合だと、括弧を付けてある部分に何らかのまとまった意味があるのかも知れない。
数学や物理学では、計算を減らすために式変形していくが、最終的な式は元々の意味が分からなくなってしまうことがある。
その場合には括弧で囲ったくらいで意味が分かり易くなることは少ない。
しかし、そのケースの場合は、括弧で括ると何か意味が分かり易くなると考えた間ロウ製がある。
整数の場合だと、括弧を付けてある部分に何らかのまとまった意味があるのかも知れない。
数学や物理学では、計算を減らすために式変形していくが、最終的な式は元々の意味が分からなくなってしまうことがある。
その場合には括弧で囲ったくらいで意味が分かり易くなることは少ない。
しかし、そのケースの場合は、括弧で括ると何か意味が分かり易くなると考えた間ロウ製がある。
460デフォルトの名無しさん
2020/02/08(土) 15:11:02.15ID:pjdiRHlo >>459
間ロウ製 ---> 可能性
間ロウ製 ---> 可能性
461デフォルトの名無しさん
2020/02/08(土) 15:12:02.03ID:JKzazDKJ462デフォルトの名無しさん
2020/02/08(土) 15:45:10.44ID:yr4lhGWD MSDNの書き間違いかもしれないが、Win32 APIの一部にも「成功時はTRUEを返す」という
仕様の関数があるんだよな。
仕様の関数があるんだよな。
463デフォルトの名無しさん
2020/02/08(土) 15:54:04.38ID:pjdiRHlo464デフォルトの名無しさん
2020/02/08(土) 16:07:20.11ID:yr4lhGWD おいおい、#define TRUE 1のTRUEと真(true)の区別がぐちゃぐちゃだぞ。
BOOLを返すWin32 APIの多くは「成功時はFALSE(0)以外の値を返す」という仕様になっている。
BOOLを返すWin32 APIの多くは「成功時はFALSE(0)以外の値を返す」という仕様になっている。
465デフォルトの名無しさん
2020/02/08(土) 16:16:01.81ID:24Q9Tmjg 宗派論争だな
466デフォルトの名無しさん
2020/02/08(土) 16:19:44.70ID:RKzyJDHj C++にはtrueがあるので積極的に使っていこうと思います。
467デフォルトの名無しさん
2020/02/08(土) 16:36:41.39ID:pjdiRHlo >>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」を返すと書いてある。
なるほど確かに 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」を返すと書いてある。
468デフォルトの名無しさん
2020/02/08(土) 16:45:19.38ID:RKzyJDHj キャッシュかキャッシュでないかで速度が変わる。
これは驚き。
これは驚き。
469デフォルトの名無しさん
2020/02/08(土) 16:50:34.75ID:LleYumKd バカ==TRUE
470デフォルトの名無しさん
2020/02/08(土) 17:21:59.80ID:+a4Pmd4C ○ if(b) if(!b)
○ if(b == FALSE) if(b != FALSE)
× if(b == TRUE) if(b != TRUE)
WinAPI使いには常識だと思ってたんだが
○ if(b == FALSE) if(b != FALSE)
× if(b == TRUE) if(b != TRUE)
WinAPI使いには常識だと思ってたんだが
471デフォルトの名無しさん
2020/02/08(土) 17:32:20.19ID:RKzyJDHj そういうのをみんなで共有しましょうって事で、たらこさんが2chを作ったんですよ。
472デフォルトの名無しさん
2020/02/08(土) 17:40:43.90ID:yr4lhGWD473デフォルトの名無しさん
2020/02/08(土) 17:57:14.84ID:+a4Pmd4C 本当にそんなのあるの?
戻り値BOOLでFALSE(0)とTRUE(1)以外の値をTRUEと違う意味を表現するために意図的に返す奴があるってこと?
具体例どうぞ
戻り値BOOLでFALSE(0)とTRUE(1)以外の値をTRUEと違う意味を表現するために意図的に返す奴があるってこと?
具体例どうぞ
475はちみつ餃子 ◆8X2XSCHEME
2020/02/08(土) 18:26:30.54ID:2SU4KPt5 >>473
GetMessage という基本的な API からして変則的だから……
GetMessage という基本的な API からして変則的だから……
476デフォルトの名無しさん
2020/02/08(土) 18:31:14.43ID:yr4lhGWD >>462に書いたMSDNのは単にドキュメントの間違いという可能性もあるけどね。
それとは別に、TRUE/FALSe以外に-1を返すAPIがあるのは有名だろう。
いずれにしても仕様をちゃんと確認してそれに従った扱いをすべきで、思い込みは禁物ってこと。
それとは別に、TRUE/FALSe以外に-1を返すAPIがあるのは有名だろう。
いずれにしても仕様をちゃんと確認してそれに従った扱いをすべきで、思い込みは禁物ってこと。
477はちみつ餃子 ◆8X2XSCHEME
2020/02/08(土) 18:33:32.51ID:2SU4KPt5478デフォルトの名無しさん
2020/02/08(土) 18:34:27.09ID:RKzyJDHj 判定マクロないの。
479はちみつ餃子 ◆8X2XSCHEME
2020/02/08(土) 18:44:49.18ID:2SU4KPt5 >>466
bool も式にまざるといつのまにか int に暗黙に型変換されちゃったりして、
やっぱりこう、あまりしっかり区別されてる気がしねぇなあと思うことも多いよ。
Windows API で使われている BOOL よりはかなりマシではあるけど。
bool も式にまざるといつのまにか int に暗黙に型変換されちゃったりして、
やっぱりこう、あまりしっかり区別されてる気がしねぇなあと思うことも多いよ。
Windows API で使われている BOOL よりはかなりマシではあるけど。
480デフォルトの名無しさん
2020/02/08(土) 18:46:46.57ID:JKzazDKJ GetMessage()が-1を返したときはエラーなんじゃわ;
481デフォルトの名無しさん
2020/02/08(土) 18:51:51.40ID:+a4Pmd4C 「WM_QUITでない」という条件における真(0以外)の中の特殊な場合(エラー)に-1ってことなのね
理屈はわからんでもないけど変なの
本当はそんなのの戻り値に「BOOL」なんていうtypedefを使うのがそもそもおかしいんだけどWinAPIだから仕方ないな
理屈はわからんでもないけど変なの
本当はそんなのの戻り値に「BOOL」なんていうtypedefを使うのがそもそもおかしいんだけどWinAPIだから仕方ないな
482デフォルトの名無しさん
2020/02/08(土) 18:52:06.88ID:RKzyJDHj >>480
行末の;イイね。
行末の;イイね。
483デフォルトの名無しさん
2020/02/08(土) 18:52:56.77ID:RKzyJDHj 30年前のAPIだしね。
484はちみつ餃子 ◆8X2XSCHEME
2020/02/08(土) 18:55:20.75ID:2SU4KPt5 今なら適当なフレームワークをかぶせて使うもんだと思う。
素でメッセージの処理とか面倒くさすぎるし。
素でメッセージの処理とか面倒くさすぎるし。
485デフォルトの名無しさん
2020/02/08(土) 19:15:43.34ID:mZtPBS5R klocworkがboolメンバ変数にportingがどうのって言ってくるのがうざい
486デフォルトの名無しさん
2020/02/08(土) 20:18:51.44ID:RKzyJDHj >>485
これ何億円するの?
これ何億円するの?
487デフォルトの名無しさん
2020/02/08(土) 21:17:13.95ID:24Q9Tmjg488デフォルトの名無しさん
2020/02/08(土) 21:25:19.61ID:RKzyJDHj 正の型の値と負の型の値を比較する場合、ビット幅の大きいほうの型に変換されてから比較されるんですかね?
489デフォルトの名無しさん
2020/02/08(土) 21:30:32.47ID:uvgcwZ2m 汎整数拡張でググれ
490デフォルトの名無しさん
2020/02/08(土) 21:35:32.85ID:RKzyJDHj491デフォルトの名無しさん
2020/02/08(土) 23:34:23.41ID:jnRyPLnj >>472
いや。TRUE は、必ず if 式で真と判定されるので、if (b == TRUE) としなくても
if (b) で絶対十分であることは補償されている。
むしろ、if (b == TRUE) と書くのはバグの原因になるので駄目だと言われている。
いや。TRUE は、必ず if 式で真と判定されるので、if (b == TRUE) としなくても
if (b) で絶対十分であることは補償されている。
むしろ、if (b == TRUE) と書くのはバグの原因になるので駄目だと言われている。
492デフォルトの名無しさん
2020/02/08(土) 23:51:17.72ID:jnRyPLnj なんというか、TRUE は、処理系ごとに変化する値ではなく、C/C++ においては、標準的には必ず 1 に #define されている。
一応分かり易さのために TRUE と書いているだけで、TRUEが2になったりする事は考える必要はない。
ただし、逆に、高速化のために 1 ではなく、非0の値を返してたまたまの値、
例えば、12 とかを返してくる関数が有りえる。
その場合、うっかり間違って if ( b == TRUE ) などと書いてしまっていたら
大変なことになるので、意味的に TRUE を返す場合には、
if ( b ) または、if ( b != 0 ) と書く方が安全だと考えられている。
一応分かり易さのために TRUE と書いているだけで、TRUEが2になったりする事は考える必要はない。
ただし、逆に、高速化のために 1 ではなく、非0の値を返してたまたまの値、
例えば、12 とかを返してくる関数が有りえる。
その場合、うっかり間違って if ( b == TRUE ) などと書いてしまっていたら
大変なことになるので、意味的に TRUE を返す場合には、
if ( b ) または、if ( b != 0 ) と書く方が安全だと考えられている。
493デフォルトの名無しさん
2020/02/08(土) 23:53:58.53ID:jnRyPLnj 非常に古い時代に、TRUE を -1 と定義していた処理系もあったかもしれないが、
現在の C/C++ では、1 に定義するのが基本とされている。
b == TRUE という判定の仕方は、C/C++ の言語仕様から考えれば推奨されない。
現在の C/C++ では、1 に定義するのが基本とされている。
b == TRUE という判定の仕方は、C/C++ の言語仕様から考えれば推奨されない。
494はちみつ餃子 ◆8X2XSCHEME
2020/02/09(日) 00:57:27.97ID:OoesT11A >>492-493
言語仕様にある true を避けているのだから、
その環境においては標準と異なる事情があるのだと察するべきじゃないの。
まあそういうことがあったらもっと別の名前を付けるべきだとは思うけど。
C/C++ はその性質上、様々なシステムの仲立ちをする機会があるし、
いろんな事情に左右される。
TRUE を 1 と定義する機会が多いのは確かだろうし、
そのときの習慣が確立されてもいるのもわかってるけど、
それが当たり前かっつーとそうとも言えんのじゃないかな。
言語仕様にある true を避けているのだから、
その環境においては標準と異なる事情があるのだと察するべきじゃないの。
まあそういうことがあったらもっと別の名前を付けるべきだとは思うけど。
C/C++ はその性質上、様々なシステムの仲立ちをする機会があるし、
いろんな事情に左右される。
TRUE を 1 と定義する機会が多いのは確かだろうし、
そのときの習慣が確立されてもいるのもわかってるけど、
それが当たり前かっつーとそうとも言えんのじゃないかな。
495デフォルトの名無しさん
2020/02/09(日) 01:17:16.75ID:J5M0tDgl 趣味人だとかいってるがハチミツ餃子はたまに良い事いうから困る
496デフォルトの名無しさん
2020/02/09(日) 01:23:08.88ID:e66sowWB >>494
TRUE が 1 以外に定義されていても、TRUE の値は、if 文では真と解釈されることだけは保障されているので、if (b) は問題ない。
逆に BOOL b の場合、b が非0であるが、TRUE のマクロ値とは異なった値になっている場合がないとは保障はされない。
なので、if ( b == TRUE ) だと、TRUE ではないが b に真とみなせる値が入っている場合にすり抜けてしまう恐れがあり、重大バグの原因となる。
TRUE が 1 以外に定義されていても、TRUE の値は、if 文では真と解釈されることだけは保障されているので、if (b) は問題ない。
逆に BOOL b の場合、b が非0であるが、TRUE のマクロ値とは異なった値になっている場合がないとは保障はされない。
なので、if ( b == TRUE ) だと、TRUE ではないが b に真とみなせる値が入っている場合にすり抜けてしまう恐れがあり、重大バグの原因となる。
497デフォルトの名無しさん
2020/02/09(日) 01:23:18.79ID:bHnzUNQO >>494
避けるもクソもそもそも昔なかったし
避けるもクソもそもそも昔なかったし
498デフォルトの名無しさん
2020/02/09(日) 01:33:30.02ID:Jw8Rx7z0 あったぞ
MSが実装サボっただけで
MSが実装サボっただけで
499デフォルトの名無しさん
2020/02/09(日) 01:58:53.21ID:bHnzUNQO 当時のc言語には仕様に無くない?
500はちみつ餃子 ◆8X2XSCHEME
2020/02/09(日) 02:19:40.02ID:OoesT11A501デフォルトの名無しさん
2020/02/09(日) 02:27:09.56ID:cYNa4VVg 過去と未来の狭間にあるってことかな。
502デフォルトの名無しさん
2020/02/09(日) 04:25:17.31ID:ids8kf+0 WindowsAPIはC++限定じゃなくCを主軸に捉えてるだろ
クラスとか一切無いしマクロだらけだし
そもそもboolが無かったってのはそういうことやろ
クラスとか一切無いしマクロだらけだし
そもそもboolが無かったってのはそういうことやろ
503デフォルトの名無しさん
2020/02/09(日) 07:14:29.14ID:6++kPC7v504デフォルトの名無しさん
2020/02/09(日) 07:15:18.90ID:6++kPC7v >>502
Cと言うよりPascalだし
Cと言うよりPascalだし
505デフォルトの名無しさん
2020/02/09(日) 07:19:31.89ID:PT76WH2y >>434
自己紹介乙
自己紹介乙
506デフォルトの名無しさん
2020/02/09(日) 07:24:44.99ID:PT76WH2y■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 高市内閣「支持」64%「不支持」19% NHK世論調査 ★2 [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 高市首相「多様なコメの増産を進める」 方針転換への懸念払拭狙いか ★2 [どどん★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 初めて顔パックしたけど凄いなこれ
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 巨大地震 [957955821]
- 胃腸弱い奴は社会的弱者←ガチ
- 【🏡】岩手ビックウェーブ🏄うおおおおおおおおおおお🌊
- 千晴の住所教えてよ!
