- 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/ (日本語)
- 100 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:29:34.25 ID:dP/tym/A.net]
- なんだロシア人か
Я не понимаю >>67, потому что я не понимаю японский?
- 101 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:32:56.91 ID:tav2AwxI.net]
-
- 102 名前:はちみつ餃子 mailto:sage [2020/02/01(土) 21:34:56.10 ID:6nnXKMBq.net]
- >>96
同じだからそれ以上に新しい文法を持ち込んでもそれほど綺麗にならんって! ということを言いたい。
- 103 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:36:54 ID:BhmlSyWc.net]
- >>98
Mimi ni Kijapani.
- 104 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:38:38 ID:TULylXcw.net]
- >>96
gotoは正しく使えばという但し書きがつくでしょ そこをなんとかしたいという話だと思ってる それが論点だとするとgoto使えというのは解にならない
- 105 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:40:19 ID:BhmlSyWc.net]
- >>96
ほんこれ
- 106 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:42:54 ID:tav2AwxI.net]
- >>102
正しく使う前提なのは当たり前 なんでgotoだと正しく使わない前提になるのか不思議
- 107 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:43:54 ID:BhmlSyWc.net]
- >>104
ほんこれ
- 108 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:48:36 ID:7G0Z2VlM.net]
- 危ない操作はできないようにしようってのが言語の進化だからな
それ無視して、安全に使うのが前提とか、正しく使うのが前提とか、それ言っちゃね なんかおかしな方向へ行くよね
- 109 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:48:59 ID:TULylXcw.net]
- >>104
構造化プログラミングの概念は知ってるんだよね?
- 110 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:50:07 ID:7G0Z2VlM.net]
- gotoを正しくしか使えないように改良したのがreturn、break、continue
ってことも忘れずに
- 111 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:54:44 ID:BhmlSyWc.net]
- >>104
構造化プログラミングでは使わない制御構造を 使うべきでない理由が構造化プログラミングって論法に 抜け出せない枠があるとは思わないの? >>108 continueだけ、それで正解なんだが 他はみんな間違ってるよ
- 112 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:57:47 ID:7G0Z2VlM.net]
- 見てください皆さん、ID:BhmlSyWc ← ひどいですよ
まず何言ってるか分からない このレベルはきついな
- 113 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:02:32 ID:tav2AwxI.net]
- >>106
どの辺からgotoが危ない操作だと思うの?
- 114 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:06:43 ID:vKrtBnhX.net]
- まあ1万行ある関数の中で、5千行目ぐらいにgotoがあって、ラベルが関数の先頭付近にあるとか、それに近いのは見たことあるが、あれはどう考えてもgotoの悪い例だからな
包丁で味噌汁食ってるようなもん
- 115 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:06:57 ID:BhmlSyWc.net]
- >>110
きつくて気の毒だな 不勉強なやつは自業自得なので同情はしない
- 116 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:08:59 ID:BhmlSyWc.net]
- >>112
1万行か・・・これ↓より重症だなw www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.10.4.html
- 117 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:11:31 ID:tav2AwxI.net]
- 不定値や無限ループの危険はgotoに限ったことじゃないし
ループを抜けるgotoには関係ない話 goto特有の危険な場面 何を心配してるんだろう 酸っぱいブドウ?
- 118 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:16:09.36 ID:TULylXcw.net]
- だめだこりゃ
- 119 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:19:01.58 ID:7G0Z2VlM.net]
- gotoはどこへ飛ぶか分からないから読みにくいんだよ
前に飛ぶのか、後ろに飛ぶのか、それすら分からない 飛び先を分かりやすく改良したのがreturn、break、continue それぞれ飛び先が決まっているから追うのが楽 その英知が分からんっていうならreturn、break、continueを使わずに 全部gotoでやれば?って話
- 120 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:22:45.11 ID:tav2AwxI.net]
- 関数なんてもっとどこに飛ぶかわからんぞ
- 121 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:25:22 ID:tav2AwxI.net]
- どこに飛ぶかわかる名前にするってのが普通の発想
意味でも構造でも文章でも好きな名前を付けられる 関数も変数も名前空間も全てそう
- 122 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:25:32 ID:TULylXcw.net]
- gotoは中にも飛べるの知らないんじゃないこの人
- 123 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:25:55 ID:BhmlSyWc.net]
- >>117
飛び先じゃなく飛ぶこと自体の問題なんだがw
- 124 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:26:20 ID:7G0Z2VlM.net]
- つまりはそういう話で、追いやすいように飛び先を制限したいよねーってのが根底に有って
(当然そういうのが念頭にあってreturn,break,continueは生まれたわけで、前例に倣いたい所) それでブロックに名前を付けるだのbreak 2だのって書き込んでいる人がいるわけで gotoでいいんじゃね?っていうなら、return,break,continueもgotoでいいんじゃね? むしろforやwhileもgotoでいいんじゃね?gotoを正しく使えばいいんだろ?ってなる
- 125 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:26:36 ID:TULylXcw.net]
- 構造化プログラミング知らずにgotoいきって使うのはさすがにやばい
- 126 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:28:23 ID:BhmlSyWc.net]
- >>122
どうなっていれば「追いやすい」のかを まず明らかにしようぜ 俺ルールでもいいし 広く認知されているルールでもいいし
- 127 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:31:09 ID:7G0Z2VlM.net]
- 巻数はどこに飛ぶか分からないが、必ず元に戻ってくる(のが基本)
行きっぱなしというか、ただのジャンプのgotoやらbreakやらとは違うのだよ 関数のコールは入口と出口が一つになってて非常に構造化されてる好例 こういうところ分からないってのはセンスないよ
- 128 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:32:56 ID:7G0Z2VlM.net]
- 巻数→関数
- 129 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:35:10.84 ID:tav2AwxI.net]
- 使い所でgotoが使えないのはセンス無い
使い所でgptoを使わないのはコードが見にくい 使い所でgotoを使わないのは危険なコード goto否定派にレベルを合わせた主張をするとこんな感じ
- 130 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:42:27.15 ID:TULylXcw.net]
- やっぱりこいつダメだな
知性がない
- 131 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:44:49.19 ID:tav2AwxI.net]
- 使い所でgotoを使わないのは知性が無い
- 132 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:45:34.37 ID:7G0Z2VlM.net]
- 本心では誰もgotoは否定していないんじゃないかな
今は多段breakの機能が無いんだからgotoを使えばいいだろう しかし、もしgotoを使わないで済む多段breakの新機能があったのなら それを使ったほうがいいだろうし じゃーその新機能はどんなものが考えられるか?って遊びだろ? ブロックに名前付けるだとかbreak nだとかは
- 133 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:50:41.91 ID:wBNP08tW.net]
- 多段breakは考えた奴は脳味噌が糞すぐる…
ループの深さを変えたとたんにバグるじゃん? ループの深さは金輪際変えないとか ループの深さを変えるとき必ずループ全体を机上確認するとかだったら gotoでも逝けるじゃん??
- 134 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:53:08.37 ID:vKrtBnhX.net]
- ああ、そうだな
break 2だとfor文が3重になったときにバグるな 個人的には面白いと思ったが
- 135 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:53:40.31 ID:tav2AwxI.net]
- 使い所は2次元構造の2重ループとかだよ
- 136 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:55:40.65 ID:rsRLlL5x.net]
- 画像処理とかで2重ループ良く書くけど、最近2段階breakしたくなった記憶がないな
実は要らないんじゃね
- 137 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:56:47 ID:tav2AwxI.net]
- じゃあbreakもいらないんじゃない?
- 138 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:59:11 ID:7G0Z2VlM.net]
- まーC++がプリプロセッサを殺すために進化しているのと同様
Cはgotoを殺すために進化したともいえるわけで たとえば、関数、for、return、などなど、制御構造にかかわるほとんどの物が gotoを殺すために有るといってもよい だから、もっとgotoを殺すにはどうすればよいか、考えるのは自然な発想かと C++でもテンプレートなどで出来ないことはプリプロセッサでしなければならないし ただ、同じことがテンプレートとかで出来るならそのほうが良いだろうし もっとプリプロセッサを殺すためにはどういう機能を追加すればよいか考えるのは自然な事だろう 同じ同じ
- 139 名前:◆QZaw55cn4c mailto:sage [2020/02/01(土) 23:01:32 ID:EspH/Y2K.net]
- goto とか break とか continue とか、他の言語(javaとか)でもいろいろ小手先的に弄られているけれども、それに何の意味があるのかいつも不思議におもいますね
C/C++ の goto とかはどう頑張っても関数の中でだけしか跳べないのだから、BASIC の GOTO ほどにはスパゲッティ状態を招けないのではと考えます 無論、その関数が異様にデカければ別ですが、そんなデカい関数を書くほうが問題であって goto が問題なのではないかと
- 140 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 23:11:38.33 ID:tav2AwxI.net]
- ループを抜ける為にだけ使われる変数を使ったループ抜け
世の中にはたくさんこういうコードがある たくさんのコードを見る機会がある人なら たくさん見たことがあるはず gotoネガティブキャンペーンのせいだよ
- 141 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 23:11:46.92 ID:JWECbGc7.net]
- >>136
gotoが使わないで済むように進化してくのは期待している。 ただ現状として、多重ループを抜ける場合みたいにgotoを使うのがシンプルで分かりやすいならば、毛嫌いしたり盲目的に原則振りかざすよりgoto使えばいいだけのことだと思うよ。
- 142 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 23:32:29 ID:TULylXcw.net]
- >>138
お前ほんとに病気だな 多重ループ脱出でgotoが簡潔なのはみなわかってる でもgotoは自由度が高すぎて構造を壊す可能性があるわけ だから改善するとしたら何があるかという話をしてるだけであって 別にgoto禁止とかの話はしてない 好きなだけ使ってろよ あと構造化プログラミングぐらい知っとけ
- 143 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 23:45:45.20 ID:tav2AwxI.net]
- >>140
色々と違う
- 144 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 23:46:54.20 ID:vKrtBnhX.net]
- for () {
break label; } label; for () { for () { break label1 } label2; } label1; こういう風にfor文のお尻にラベルを付けられるようにすれば局所化したgoto風のbreakが使えるのでは
- 145 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 23:48:30.11 ID:tav2AwxI.net]
- for () {
goto label; } label:; for () { for () { goto label1; } label2:; } label1:;
- 146 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 23:49:00.26 ID:tav2AwxI.net]
- 今でも出来る
- 147 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 23:49:30.89 ID:wBNP08tW.net]
- Pythonはループにラベルをつける手が使えた
と思った(幻覚でなければ
- 148 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 23:52:18.24 ID:pUJoLXPw.net]
- またgotoの話になってんのかよ。。
だからいっそ禁止にと思ったが、それよりもさらにクソな構文の提案が出てたり。。 想定を超えた馬鹿どもばっかりじゃねーか。
- 149 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 23:54:48.66 ID:tav2AwxI.net]
- 無理に会話に入って来なくて良いよ
- 150 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 23:59:22.03 ID:7G0Z2VlM.net]
- ただ、凝りに凝った複雑怪奇なテンプレートより
シンプルに作ったマクロの方が読みやすいって事例も当然あるだろうよ てか、わりと、最近、残念ながらその傾向が・・・で、C++が嫌われる理由にも・・・ だからgotoを殺すのも上手くやらないとむしろ酷くなる そこが腕の振るいどころで面白い部分でもあるし、言語作ってる連中もそんなことで頭いっぱい 変なゲーム性が有って、逆にそれがまたダメな部分でもあって あと、妹大好き
- 151 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 00:17:33.29 ID:rWwvB4I9.net]
- 多段breakの使用頻度がそれほど多くないことを加味すれば
break n;方式が妥当だろうね これだと2重ループを3重ループに書き換えたときにバグる、とか 意味不明なことを言ってる奴もいるが それは1重ループをbreakで抜けてたのを2重ループに書き換えたらバグった と言ってるのと同じであって、当たり前の話だし、今でも同じことだ break n;が一番シンプルで妥当だと思うね
- 152 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 00:32:21 ID:7b/FZYuN.net]
- breakの後にマジックナンバーを書くのが気に入らない
定数には意味のわかる名前を付けたい
- 153 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 00:33:00 ID:rWwvB4I9.net]
- ただし、break n;のnの部分が変数でもOKとかなってたらかなりウザいが
そこはnは定数と定めたいね、でもC++の場合は定数と言っても・・・ 複雑にしようと思えばいくらでも複雑にできるわなー 普通に使う分には問題ないかと 明日からbreak n;が入っても、たぶん誰も困らないし、混乱も起きないだろう 割のいい賭けだし、俺はアリだと思うね
- 154 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 00:33:32 ID:7b/FZYuN.net]
- breakとbreak nが同じとか意味不明な主張をなさる御仁がいらっしゃるが
じゃあcontinueがcontinue nになったらどんな地獄が発生するか 考えてみたら良い
- 155 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 00:48:04.23 ID:rWwvB4I9.net]
- 別にcontinue n;
全然ありでしょ これと同等の事を、何か別の方法でやるよりスマート for(;;){ bool do_continue = false; for(;;){ if(...){ do_continue = true; break;} } if( do_continue ){ continue; } } ↓ for(;;){ for(;;){ if(...){ continue 2; } } }
- 156 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 01:00:22.64 ID:7b/FZYuN.net]
- do {
do { ... if (cond) { continue 2; } } while (副作用の有る式1); } while (副作用の有る式2); とから?
- 157 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 01:03:23.27 ID:0Gqmr542.net]
- break nなんてやるくらいならbreak label で抜けるループを明示的に指定したいな
↓ ループにラベルをつけるとして、先頭では見づらくて邪魔だな ↓ ループの末尾にラベルを付ければ見やすいけど、それだとlabelついたループを抜けると言うよりlabelの指す位置へのジャンプだな ↓ なんだgotoでいいじゃん 個人的には breakto label という記法でループ出口に書いたラベルに飛べるとするのが分かりやすいと思うけど、こんなことに新しい予約語を導入するくらいならgotoで十分だと思う。
- 158 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 01:06:28.34 ID:7b/FZYuN.net]
- break nが良いとか言ってる椰子は
ついでに行番号も復活してほしいと思っているに違いナス
- 159 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 01:15:40.31 ID:rWwvB4I9.net]
- do{
do{ if(...) goto NEXT; }while(...); NEXT; }while(...); と等価だろう 要はこういうgotoを置き換えるために作られたのが continueなのだから、そのルールに従うのが普通だろうね もしくはgoto使わずにフラグでやっても、どのみち内側のループの条件式は実行されないわけで do{ bool do_continue = false; do{ if(...){ do_continue = true; break; } }while(...); if(do_continue) continue; }while(...); これ以外の解釈ってのは難しい
- 160 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 02:23:51 ID:93obPCeA.net]
- gotoの話題って今でもこんなに盛り上がるのか
- 161 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 02:49:52.74 ID:LC7cWz9a.net]
- 老害が多いから
- 162 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 03:26:54 ID:EDNK6zQt.net]
- そういう機能要望みたいなのここでやる意味ある?
C++Slackでやった方がよくない?
- 163 名前:デフォルトの名無しさん [2020/02/02(日) 03:45:22 ID:mzCY/+E0.net]
- 英語は敷居が高いよ。
- 164 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 05:06:46.10 ID:DTIMfhpJ.net]
- ,,-―--、
|:::::::::::::;;;ノ |::::::::::( 」 <もう構造化は破綻してるんだからおとなしく goto しとけよな! ノノノ ヽ_l ,,-┴―┴- 、 ∩_ /,|┌-[]─┐| \ ( ノ / ヽ| | バ | '、/\ / / / `./| | カ | |\ / \ ヽ| lゝ | | \__/ \ |  ̄ ̄ ̄ | ⊂|______| |l_l i l_l | | ┬ |
- 165 名前:デフォルトの名無しさん [2020/02/02(日) 06:40:45 ID:mzCY/+E0.net]
- じゃあswitchも要らないって事じゃないか。
- 166 名前:◆QZaw55cn4c mailto:sage [2020/02/02(日) 06:51:18 ID:9jRHEnns.net]
- >>149
break n なんて間抜けの極みだと思いますね java にはラベル付き break が存在して、ほとんど goto です https://www.sejuku.net/blog/20100
- 167 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 07:37:33 ID:SWo7Ruqh
]
- [ここ壊れてます]
- 168 名前:.net mailto: >>136
Cはgoto殺すために進化してねえよ Cのgotoが関数外に飛べないのはスタック巻戻しのような仕掛けが複雑になりすぎるからで 構造化プログラミングで否定されるからという理由ではない 構造化プログラミングで否定される制御構造を持たないことにするなら breakやlongjmpは存在できないはずだ [] - [ここ壊れてます]
- 169 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 07:44:05 ID:pBPOCWQ5.net]
- 結論が先にあって理由が後付けだから支離滅裂、一貫性の欠片もない事を書く
もはや宗教
- 170 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 07:46:45 ID:SWo7Ruqh.net]
- ほんと、宗教だね
洗脳されてるやつは強固に思考停止していて 何を言おうが馬の耳に念仏だ
- 171 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 08:06:14 ID:SWo7Ruqh.net]
- >>159
根底がわかってねえやつが多いからだよ 古典的な基本がわかってねえやつは若造と爺のどっちに多いだろうね 頓珍漢なことを書いて袋叩きにされたからって逆恨みする精神性なやつはどっちに多いだろうね
- 172 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 08:18:25 ID:9aZda2U6.net]
- break labelでいいんじゃね
gotoと同じだが、labelがbreak的な位置にない場合コンパイルエラーになれば良い
- 173 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 08:27:24 ID:DTIMfhpJ.net]
- label貼るくらいならgoto使う
- 174 名前:デフォルトの名無しさん [2020/02/02(日) 09:22:07 ID:mzCY/+E0.net]
- gotoは便利なswitchだからね。
便利すぎるわこれ。 これからも積極的に使っていこうと思います。
- 175 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 09:40:59.69 ID:7b/FZYuN.net]
- さすがにgotoでジャンプテーブル化の最適化までやる処理系は
まれだと思う
- 176 名前:デフォルトの名無しさん [2020/02/02(日) 09:43:27.45 ID:mzCY/+E0.net]
- アドレス直接指定なのに、テーブル必要ないんじゃないの。
テーブル必要ない分、switchより有利なんじゃないかと思いました。
- 177 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 09:51:12.60 ID:7b/FZYuN.net]
- (条件分岐無しの素のgotoだけでどうやってswitchの便利な代替品にするつもりなのやら…
- 178 名前:デフォルトの名無しさん [2020/02/02(日) 09:53:50.90 ID:mzCY/+E0.net]
- 頑張ってひねり出した!!
けどウンコにしか見えない。 納得できるものを頼む。
- 179 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 09:55:31.36 ID:0Gqmr542.net]
- >>175
お前が何をいってるのか、何を考えてるのか理解できないのに、お前を納得させられる奴なんていないぞw
- 180 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 10:10:20.38 ID:o79zkFFu.net]
- お尻にラベルつけて break ラベル; がいいとか言ってる奴は構造化の意味がわかってなさ過ぎ
ラベルは飛び先じゃなくてループに付けて break ラベル; でそのループから抜けるんだよ なので break ラベル が使える言語はたいていループの頭にラベルをつけるようになってる あと break レベル数 とか言ってる老害は早く滅びろ
- 181 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 10:28:45.43 ID:DTIMfhpJ.net]
- 名前使うならこんな感じか
void main(){ auto scope1 { for(;;){ for(){ break scope1; } } }
- 182 名前:デフォルトの名無しさん [2020/02/02(日) 10:29:18.43 ID:mzCY/+E0.net]
- >>176
俺自身何を言っているのかよくわからないのだが。
- 183 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 10:31:44.19 ID:DTIMfhpJ.net]
- もしくは、forの直後
void main(){ for(;;)scope1{ for(;;){ break scope1; } } }
- 184 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 10:58:10 ID:MNdu0823.net]
- void main()の時点で読む気失せた
- 185 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 11:16:46.30 ID:DTIMfhpJ.net]
- んだこんにゃろ
- 186 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 11:22:39.21 ID:D8WvcGqJ.net]
- ループの先頭にラベルを書くくらいなら
gotoの方が分かりやすい
- 187 名前:デフォルトの名無しさん [2020/02/02(日) 11:25:45 ID:mzCY/+E0.net]
- あの、スレとは全然関係ないんだけど。
Boostでデバッグとリリース判別するマクロってありますか? イテレータを1億回ほど回すのでデバッグだけテストを迂回したいんですが。
- 188 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 11:30:31.96 ID:9aZda2U6.net]
- なぜboost?
- 189 名前:デフォルトの名無しさん [2020/02/02(日) 11:34:47.86 ID:mzCY/+E0.net]
- NDEBUGを知らなかったからです。
おまえらおせーよ。
- 190 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 11:39:04.55 ID:SWo7Ruqh.net]
- NDEBUGってISO/IEC9899やん
おまえさんがboostっていうから レスポンス鈍かったんだよ
- 191 名前:デフォルトの名無しさん [2020/02/02(日) 11:48:10 ID:mzCY/+E0.net]
- だよね。
そうだと思いました。
- 192 名前:デフォルトの名無しさん [2020/02/02(日) 11:49:31 ID:mzCY/+E0.net]
- 今度からはよく考えて質問しようと思います。
- 193 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 14:38:02 ID:rWwvB4I9.net]
- 今の一重ループを抜けるときの普通のbreakにはラベルを付けないのに
多重ループを抜けるためのbreakにはラベルが無いと読みにくくなるっていう 発想というか対称性というか整合性というか必然性が全く見えないんだが 今ラベル無しの一重breakで誰も発狂することもなく普通に使えているのに 多重breakになった瞬間にラベルが無きゃダメってなるのはなんか弱い 同じことを二回書いたけども ラベル無しでも別に普通に読めるでしょ、今まで読めてるんだから 大体ラベル付けるんならgotoと手間自体は変わりないしな
- 194 名前:デフォルトの名無しさん [2020/02/02(日) 14:40:18 ID:mzCY/+E0.net]
- 今多発今多動ラ大
読み解けなかった。
- 195 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 14:41:51 ID:gkoi3ncl.net]
- >>190
同意
- 196 名前:デフォルトの名無しさん [2020/02/02(日) 14:43:14 ID:mzCY/+E0.net]
- え、わかるんだ。
すげー。
- 197 名前:デフォルトの名無しさん [2020/02/02(日) 14:47:27 ID:gXxB23XL.net]
- 下方向にだけ飛べるgoto相当機能があればgotoは要らなくなるんじゃない?
- 198 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 14:53:57 ID:7b/FZYuN.net]
- >>190は、Cにgoto <label>とbreakがあるのになぜCはbreak nを設けるところまで踏み込まなかったのか、とか
break <n>で即値<n>に行き当たったコード閲覧者が行き先を知るために何をせねばならないかとか、 考えた方が良いので は…
- 199 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 14:55:47 ID:0Gqmr542.net]
- >>190
break nを勧めている人? 対象が1段なのと複数段とでは大きなギャップがあるでしょ。単純に対称性があると言えるものではないと思う。 ラベルつけるならgotoと手間が変わらないというのは同意。ただ、重要なのは手間が減ることではなく、複数段のループの外に出ることが明示されることだから、gotoと意味が混同されず同じ程度の手間でできる記法があるならそれは嬉しい。
- 200 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 14:56:57 ID:EDNK6zQt.net]
- 現実のC++について話せ
ここで新機能の導入について議論しても無駄だ フォーラムでやれ
|

|