C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part146
https://mevius.5ch.net/test/read.cgi/tech/1573094136/
このスレもよろしくね。
【初心者歓迎】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/ (日本語)
STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
↑え?だってお前、普通ダイナミックリンクするだろ?
"ダイナミックリンク"す・れ・ば、ファイルサイズ**増えないです**
探検
C++相談室 part147
■ このスレッドは過去ログ倉庫に格納されています
2019/12/18(水) 17:56:53.03ID:uFDqtnkl
362デフォルトの名無しさん
2020/01/19(日) 12:30:11.44ID:L2mlhsAt 別にgoto使っても使わなくても馬鹿が書けば複雑なコードになるだろ。
そういう問題じゃない。
そもそもc++の標準ライブラリが例外投げる時点でgotoとの相性は最悪だよ。
一番末端の関数で、副作用もないようなもの以外使えんわ。
そういう問題じゃない。
そもそもc++の標準ライブラリが例外投げる時点でgotoとの相性は最悪だよ。
一番末端の関数で、副作用もないようなもの以外使えんわ。
363デフォルトの名無しさん
2020/01/19(日) 12:36:07.26ID:PgEzQeWd gotoおじさんはたぶん例外安全性という概念をわかってない
364デフォルトの名無しさん
2020/01/19(日) 14:43:36.08ID:6jfPBIzz >>363
例外安全の定義が難しいのですが、gotoを使っても例外安全を保障することはできると思うのですが、いかがでしょうか。
例外安全の定義が難しいのですが、gotoを使っても例外安全を保障することはできると思うのですが、いかがでしょうか。
365デフォルトの名無しさん
2020/01/19(日) 15:06:56.67ID:PgEzQeWd >>364
c++の標準ライブラリに関して例外安全とは何かは定義されてる
できるできないで言えばgotoかつ例外安全はそりゃできるでしょうよ
まずgoto関係なしに例外安全が相当大変であることを理解してから出直してくれ
そうじゃなきゃRAII、autoなんとかmakeなんとかの有難みも理解できてないのよ
c++の標準ライブラリに関して例外安全とは何かは定義されてる
できるできないで言えばgotoかつ例外安全はそりゃできるでしょうよ
まずgoto関係なしに例外安全が相当大変であることを理解してから出直してくれ
そうじゃなきゃRAII、autoなんとかmakeなんとかの有難みも理解できてないのよ
366デフォルトの名無しさん
2020/01/19(日) 15:08:40.81ID:RfLx+x9F 話題のすり替え
367デフォルトの名無しさん
2020/01/19(日) 15:16:49.04ID:PgEzQeWd >>366
話題を勘違いしてるのはお前だよ
お前は単にbreakでスコープの脱出することに対してgotoの方が簡潔と言ってるんだろう
そういう場合があるのは同意するけど今回の話題はそれじゃない
スコープの脱出になってるのはRAIIでリソースを安全に開放する前提だからだ
だからお前が言うべきはスコープをなくしてgotoを使うというなら
合わせてリソースをどのように安全に開放するかを説明しないといけない
場当たり的でない方法でね
そこをまったく説明できない以上お前はgotoおじさんと呼ばれ続ける
話題を勘違いしてるのはお前だよ
お前は単にbreakでスコープの脱出することに対してgotoの方が簡潔と言ってるんだろう
そういう場合があるのは同意するけど今回の話題はそれじゃない
スコープの脱出になってるのはRAIIでリソースを安全に開放する前提だからだ
だからお前が言うべきはスコープをなくしてgotoを使うというなら
合わせてリソースをどのように安全に開放するかを説明しないといけない
場当たり的でない方法でね
そこをまったく説明できない以上お前はgotoおじさんと呼ばれ続ける
368デフォルトの名無しさん
2020/01/19(日) 15:20:52.99ID:fzpRtoDi >スコープをなくしてgotoを使う
なんか言ってることが変だと思ったらこんな条件付けてたのか。ブロックスコープ使えばいいじゃん。
なんか言ってることが変だと思ったらこんな条件付けてたのか。ブロックスコープ使えばいいじゃん。
369デフォルトの名無しさん
2020/01/19(日) 15:26:55.90ID:RfLx+x9F スコープを無くしてgotoで解放?
なんじゃそりゃ?
スコープを抜けないと解放されないぞ
なんじゃそりゃ?
スコープを抜けないと解放されないぞ
370デフォルトの名無しさん
2020/01/19(日) 15:27:43.53ID:PgEzQeWd371295
2020/01/19(日) 15:31:10.41ID:2MN/c8bt どんな劣悪な環境でも動く do{ } while(0); こそ絶対正義。
372デフォルトの名無しさん
2020/01/19(日) 15:33:51.15ID:RfLx+x9F373デフォルトの名無しさん
2020/01/19(日) 15:34:25.99ID:RfLx+x9F >>370の勘違いってことでいいのかな?
374デフォルトの名無しさん
2020/01/19(日) 15:42:01.04ID:PgEzQeWd375デフォルトの名無しさん
2020/01/19(日) 17:03:31.99ID:6jfPBIzz >>365
本来の「例外安全」の定義はもっと広い意味なのですが、あなたは、throwやcatchなどの「例外」が起きたときでもnewされたオブジェクトの削除などを行うという定義を採用されているようです。
break文を用いずにgoto文でブロックを脱出した場合でもオブジェクトは自動解放されるのをご存知ですか?
本来の「例外安全」の定義はもっと広い意味なのですが、あなたは、throwやcatchなどの「例外」が起きたときでもnewされたオブジェクトの削除などを行うという定義を採用されているようです。
break文を用いずにgoto文でブロックを脱出した場合でもオブジェクトは自動解放されるのをご存知ですか?
376デフォルトの名無しさん
2020/01/19(日) 17:07:28.86ID:PgEzQeWd377デフォルトの名無しさん
2020/01/19(日) 17:11:06.93ID:4SQs66uE378デフォルトの名無しさん
2020/01/19(日) 17:42:21.12ID:fzpRtoDi379デフォルトの名無しさん
2020/01/19(日) 18:24:30.09ID:6oeBvQPN 論点を増やそうとするのは苦しいやつの習性だね
380デフォルトの名無しさん
2020/01/19(日) 18:46:40.48ID:PgEzQeWd381デフォルトの名無しさん
2020/01/19(日) 18:52:29.41ID:6oeBvQPN そうだよ、変わんないよ
複合文だけでできることになんでわざわざdoなんて面倒くせえもん使わなきゃいけねえんだよ
複合文だけでできることになんでわざわざdoなんて面倒くせえもん使わなきゃいけねえんだよ
382デフォルトの名無しさん
2020/01/19(日) 18:52:32.23ID:PM2cmccN Rust使えばすべて解決。
383デフォルトの名無しさん
2020/01/19(日) 18:53:23.88ID:6oeBvQPN まさかとは思うがブレースを開くのにdoだかforだか何らかのキーワードが必要とでも思ってたか?
384デフォルトの名無しさん
2020/01/19(日) 18:56:46.75ID:PM2cmccN 俺は何の実績もないおまえの言うことより、あわしろいくや氏を信じるけどな。
385デフォルトの名無しさん
2020/01/19(日) 18:57:26.46ID:yjllCGTd >>378
噂のgotoおじさまもさすがにこのコードがいいなんて言わないでしょ
噂のgotoおじさまもさすがにこのコードがいいなんて言わないでしょ
386デフォルトの名無しさん
2020/01/19(日) 18:59:17.52ID:6oeBvQPN387デフォルトの名無しさん
2020/01/19(日) 19:00:40.10ID:PM2cmccN388デフォルトの名無しさん
2020/01/19(日) 19:01:36.43ID:4SQs66uE >>387
俺はお前のあわしろいくや氏は信用できるという言葉が信用できない
俺はお前のあわしろいくや氏は信用できるという言葉が信用できない
389デフォルトの名無しさん
2020/01/19(日) 19:02:52.67ID:PM2cmccN390デフォルトの名無しさん
2020/01/19(日) 19:15:30.92ID:ocqIlbpk 売名乙
391デフォルトの名無しさん
2020/01/19(日) 19:29:04.71ID:yQO+Nq01 まさか do while 構文が論点だと思ってたんかな?
まあ本当はgotoを推す正当性が全くなくてごまかしてるんだろうけれど。
てかgotoと例外安全性はかなり綿密に絡んだ話だろ。誤魔化しすぎだわ。
まあ本当はgotoを推す正当性が全くなくてごまかしてるんだろうけれど。
てかgotoと例外安全性はかなり綿密に絡んだ話だろ。誤魔化しすぎだわ。
392デフォルトの名無しさん
2020/01/19(日) 19:45:18.96ID:6oeBvQPN >>387
ヒゲ生やした教祖様のために死刑になった信者と同じだなw
ヒゲ生やした教祖様のために死刑になった信者と同じだなw
393デフォルトの名無しさん
2020/01/19(日) 19:46:34.82ID:fzpRtoDi394デフォルトの名無しさん
2020/01/19(日) 19:46:39.94ID:6oeBvQPN > かなり綿密に絡んだ話だろ
誤魔化しすぎというブーメランが脳天に突き刺さってるぞw
誤魔化しすぎというブーメランが脳天に突き刺さってるぞw
395デフォルトの名無しさん
2020/01/19(日) 19:54:00.26ID:yQO+Nq01 なるほど。。こりゃ話しても無駄だな。
396デフォルトの名無しさん
2020/01/19(日) 20:25:44.83ID:M/ehGL7C gotoと例外安全性がどう絡むのかわからんボスケテ;
397デフォルトの名無しさん
2020/01/19(日) 21:06:11.93ID:fzpRtoDi 話しても無駄以前に、結局gotoと例外安全がどう関係するのか一言も出てこなかったな。
398デフォルトの名無しさん
2020/01/19(日) 21:10:50.68ID:CSTVsvTH RAIIとgotoは混ぜられないだろ
399デフォルトの名無しさん
2020/01/19(日) 21:13:01.22ID:AinWVopR そらgotoでリソース開放ルーチンに飛ぶようなCスタイルのプログラム書くと
例外飛んできたときに死ぬって話でしょ
(いくらC++にfinallyが無いからってgotoでリソース開放ルーチンに飛ぶのはダメ)
ただし元々の質問には関係ない話なんだがな
ところでC++にfinallyが無いのはちょっと良くないよね
今となってはラムダで自作できるようになったからいいけど
例外飛んできたときに死ぬって話でしょ
(いくらC++にfinallyが無いからってgotoでリソース開放ルーチンに飛ぶのはダメ)
ただし元々の質問には関係ない話なんだがな
ところでC++にfinallyが無いのはちょっと良くないよね
今となってはラムダで自作できるようになったからいいけど
400デフォルトの名無しさん
2020/01/19(日) 21:16:51.88ID:fzpRtoDi >>398
その「混ぜる」って具体的にはどういうことを言ってるんだろう。
その「混ぜる」って具体的にはどういうことを言ってるんだろう。
401デフォルトの名無しさん
2020/01/19(日) 21:24:53.93ID:AinWVopR 基本的に break や return も生き先の決まった goto なので
余ほど変な使い方をしない限りRAIIと goto を混ぜれないって事はないよなぁ
むしろ RAII を使わないで goto でC系のリソース開放をしていた場合にハマるって話では
まぁでもこれは
do{
if( error ) break;
}while(0);
//開放処理
return;
でも同じことだし、元の質問には関係ないんだが
余ほど変な使い方をしない限りRAIIと goto を混ぜれないって事はないよなぁ
むしろ RAII を使わないで goto でC系のリソース開放をしていた場合にハマるって話では
まぁでもこれは
do{
if( error ) break;
}while(0);
//開放処理
return;
でも同じことだし、元の質問には関係ないんだが
402デフォルトの名無しさん
2020/01/19(日) 21:34:33.08ID:RfLx+x9F403デフォルトの名無しさん
2020/01/19(日) 21:40:42.19ID:RfLx+x9F404デフォルトの名無しさん
2020/01/19(日) 21:44:50.08ID:RfLx+x9F まあどっちでも大差ないけど
405デフォルトの名無しさん
2020/01/19(日) 21:47:25.68ID:RfLx+x9F {
{
if (...) goto label;
}
}
label:
これはbreakじゃ無理
{
if (...) goto label;
}
}
label:
これはbreakじゃ無理
406デフォルトの名無しさん
2020/01/19(日) 21:57:15.09ID:RfLx+x9F {
switch (...)
{
case ...: goto label;
}
}
label:
これも無理
switch (...)
{
case ...: goto label;
}
}
label:
これも無理
407デフォルトの名無しさん
2020/01/19(日) 22:11:05.36ID:ByUy1Erg while(0)とか意味不明なコードよりgotoでスコープ抜ける方がはるかにシンプルだわな
408デフォルトの名無しさん
2020/01/19(日) 22:15:20.58ID:RfLx+x9F 一応 do while(0) の使い方も覚えておいた方が良い
他人のコードを見たりマクロで使ったり
する事もあるだろうから
他人のコードを見たりマクロで使ったり
する事もあるだろうから
409デフォルトの名無しさん
2020/01/19(日) 22:17:28.52ID:JMAoH3/H 普段のdo whileもwhile(0)って書くなど弊害が出るのでやめた方がいい
410デフォルトの名無しさん
2020/01/19(日) 22:19:27.67ID:ByUy1Erg ループするつもりもないのにループの構文使うのは悪手だと思う
411デフォルトの名無しさん
2020/01/19(日) 22:27:26.89ID:RfLx+x9F >>409
日本語で
日本語で
412デフォルトの名無しさん
2020/01/19(日) 22:33:02.85ID:fzpRtoDi そこはまぁ、ループではあるけれども同時にbreakが使えるブロックでもあるわけで、
実際do-whileなんてほとんどがそういう使い方しかされていないわけだし。
ループできる構文でループしないのはbreakできる構文でbreakを使わないのと
同じようなものかと。
実際do-whileなんてほとんどがそういう使い方しかされていないわけだし。
ループできる構文でループしないのはbreakできる構文でbreakを使わないのと
同じようなものかと。
413デフォルトの名無しさん
2020/01/19(日) 22:36:02.43ID:JMAoH3/H414デフォルトの名無しさん
2020/01/19(日) 22:48:25.05ID:PgEzQeWd こんなささいな違いは個人の好みでいいと思う派
do-while使わない派の言い分もわからなくもないが、
ソースを読む場合gotoだってgoto先を確認しないと意図が理解できないだろ
label名を考える必要があるのもちょっとめんどい
なのでこんなのどっちでもいい
ちなみにrust方式もブロックの先頭にラベル付いてるのは若干違和感覚える
do-while使わない派の言い分もわからなくもないが、
ソースを読む場合gotoだってgoto先を確認しないと意図が理解できないだろ
label名を考える必要があるのもちょっとめんどい
なのでこんなのどっちでもいい
ちなみにrust方式もブロックの先頭にラベル付いてるのは若干違和感覚える
415デフォルトの名無しさん
2020/01/19(日) 22:50:45.02ID:RfLx+x9F >>413
誰か解説よろしく!
誰か解説よろしく!
416デフォルトの名無しさん
2020/01/19(日) 23:07:09.81ID:Wel1D6/w どっちのやり方でも構わないけど、リソース◯◯を自動解放するためのブロックだとか意図を示すコメントを付けておいてくれればそれでいい。
417デフォルトの名無しさん
2020/01/19(日) 23:13:56.14ID:AinWVopR ↑だからその方法だと例外安全が・・・
C++だとリソース開放は RAII か finally かしか幸せになれない
C++だとリソース開放は RAII か finally かしか幸せになれない
418デフォルトの名無しさん
2020/01/19(日) 23:17:22.36ID:RfLx+x9F その方法
ってどの方法?
ってどの方法?
419デフォルトの名無しさん
2020/01/19(日) 23:23:50.28ID:Wel1D6/w >>417
誤解させたかもしれないから補足すると、どっちのやり方もと言ったのはただのブロックかdo whileかという話のことで、どちらにせよスコープを抜けて破棄されることを想定していた。
解放ルーチンにとばすことは端から考えてなかったよ。
誤解させたかもしれないから補足すると、どっちのやり方もと言ったのはただのブロックかdo whileかという話のことで、どちらにせよスコープを抜けて破棄されることを想定していた。
解放ルーチンにとばすことは端から考えてなかったよ。
420デフォルトの名無しさん
2020/01/19(日) 23:47:54.15ID:L2mlhsAt 解放ルーチンにとばすくらいしかgotoの有用な使い方なんてねーだろ。
だからRAII、例外安全の話になってるわけだが
もう意地になって意味もわからずgotoにこだわってる馬鹿がいる。
だからRAII、例外安全の話になってるわけだが
もう意地になって意味もわからずgotoにこだわってる馬鹿がいる。
421デフォルトの名無しさん
2020/01/20(月) 00:05:06.10ID:ThUag/92 finally相当のデストラクタをラムダ式で渡すクラスのインスタンスを作ればいいじゃない、
で済まされてしまいそうだがやはりfinallyはあったほうがいい。
で済まされてしまいそうだがやはりfinallyはあったほうがいい。
422デフォルトの名無しさん
2020/01/20(月) 01:01:38.84ID:KvAer05C 「解放ルーチンにとばすくらいしかgotoの有用な使い方なんてねーだろ。」
って思えるぐらい、Cではこの技法が多用された
なぜなら真実は逆で
「gotoでとばすぐらいしか開放ルーチンをまとめる方法なんてねーだろ」
だったから多用された
A→Bでなくて、実はB→Aだったって話
なんだけど、あまりにもB→Aが多用されたから
数の暴力で逆のA→Bも成り立つと感覚的に思ってしまう
だが本当にそうだろうか、gotoに開放ルーチンに飛ばす以外の利用法は無いのだろうか
模索してみよう、というのがスレの流れ
スレがその流れになるのは自明で
何故ならC++においては「gotoで開放ルーチン」は例外安全の意味で完全な悪手になったから
初めから勘定に入らないし、考える意味もないし、議論の余地もない
他の利用方法を前提に話すのは当たり前で既定路線
って思えるぐらい、Cではこの技法が多用された
なぜなら真実は逆で
「gotoでとばすぐらいしか開放ルーチンをまとめる方法なんてねーだろ」
だったから多用された
A→Bでなくて、実はB→Aだったって話
なんだけど、あまりにもB→Aが多用されたから
数の暴力で逆のA→Bも成り立つと感覚的に思ってしまう
だが本当にそうだろうか、gotoに開放ルーチンに飛ばす以外の利用法は無いのだろうか
模索してみよう、というのがスレの流れ
スレがその流れになるのは自明で
何故ならC++においては「gotoで開放ルーチン」は例外安全の意味で完全な悪手になったから
初めから勘定に入らないし、考える意味もないし、議論の余地もない
他の利用方法を前提に話すのは当たり前で既定路線
423デフォルトの名無しさん
2020/01/20(月) 01:58:07.70ID:wNCym70P スレの流れはvectorの動的な解放手段についてです
424デフォルトの名無しさん
2020/01/20(月) 05:25:12.27ID:KSbNzMqr Javaはgotoを無くした先進設計だからな。
425デフォルトの名無しさん
2020/01/20(月) 07:11:09.70ID:SZK6NMcF426デフォルトの名無しさん
2020/01/20(月) 07:59:32.82ID:hWOi4sNW つまりgotoと例外安全がどうとか言っていた人はこんなC時代の技法を念頭に置いていたわけか。
if (fail) goto FINAL;
FINAL:
後始末
gotoとRAIIの相性が悪い、混ぜられないという話はまた別なのだろうか。
if (fail) goto FINAL;
FINAL:
後始末
gotoとRAIIの相性が悪い、混ぜられないという話はまた別なのだろうか。
427デフォルトの名無しさん
2020/01/20(月) 08:30:41.35ID:ItoFGwWk428デフォルトの名無しさん
2020/01/20(月) 09:55:56.39ID:SZK6NMcF429デフォルトの名無しさん
2020/01/20(月) 10:09:57.52ID:rZl1icD3430デフォルトの名無しさん
2020/01/20(月) 10:14:06.16ID:SZK6NMcF 保証しないってどこに書いてあったっけ?
431デフォルトの名無しさん
2020/01/20(月) 10:15:25.68ID:JGG/x92o432デフォルトの名無しさん
2020/01/20(月) 10:15:47.05ID:N9WxJN6X433デフォルトの名無しさん
2020/01/20(月) 10:17:29.98ID:N9WxJN6X もちろんclear()の仕様も確認しとけ
434デフォルトの名無しさん
2020/01/20(月) 10:18:17.03ID:ThUag/92 >>292 で実装依存の最適化について言及がある。
あるサイズを超えるまではヒープではなくスタックを使うことで高速実行を期待する実装はあり得ると思う。
vectorの具体例は知らないが、EASTL::basic_stringはそうやってる。
あるサイズを超えるまではヒープではなくスタックを使うことで高速実行を期待する実装はあり得ると思う。
vectorの具体例は知らないが、EASTL::basic_stringはそうやってる。
435デフォルトの名無しさん
2020/01/20(月) 10:40:56.82ID:SZK6NMcF >>433
だから、どこに書いてあったのかと聞いているんだが
だから、どこに書いてあったのかと聞いているんだが
436デフォルトの名無しさん
2020/01/20(月) 11:04:21.50ID:wNCym70P >>431の言う空の一時オブジェクトとswapという常套手段で解決するのに質問者のクズは場当たり的などと難癖をつけ、
さらにじゃあnew/deleteしろよというまっとうな意見にバカを言うななどとほざいた結果がこのくだらねえ流れだよ
さらにじゃあnew/deleteしろよというまっとうな意見にバカを言うななどとほざいた結果がこのくだらねえ流れだよ
437デフォルトの名無しさん
2020/01/20(月) 11:09:12.37ID:rZl1icD3 >>435
c++の規格書は有料だけど持ってんの?
ぐぐればstack overflowとかいくらでもひっかかるけど調べた?
これは割りと知られた仕様だと思うけどね
実際g++とかでやってみればわかるけどclearしてもcapacity変わんないから
c++の規格書は有料だけど持ってんの?
ぐぐればstack overflowとかいくらでもひっかかるけど調べた?
これは割りと知られた仕様だと思うけどね
実際g++とかでやってみればわかるけどclearしてもcapacity変わんないから
438デフォルトの名無しさん
2020/01/20(月) 11:14:14.45ID:wNCym70P 少なくともVC2019はclearでデストラクタが呼ばれてる
439デフォルトの名無しさん
2020/01/20(月) 11:20:47.48ID:N9WxJN6X >>438
それはvectorに格納した要素ごとのデストラクタの話であって、それらを格納するためにvector自身が確保した領域が解放されるわけではないだろ
それはvectorに格納した要素ごとのデストラクタの話であって、それらを格納するためにvector自身が確保した領域が解放されるわけではないだろ
440デフォルトの名無しさん
2020/01/20(月) 11:29:18.51ID:SZK6NMcF441デフォルトの名無しさん
2020/01/20(月) 11:53:45.15ID:JGG/x92o むしろclearで解放せず、capacityが減らないことを保証してほしいよね
capacity減らす手段は用意されているのだから
capacity減らす手段は用意されているのだから
442デフォルトの名無しさん
2020/01/20(月) 12:32:03.74ID:xWGHAxxP 結局何を保証して欲しがってるのかさっぱりわからんが
言語仕様はvectorの何やらはもちろん、deleteだってfreeだって、OSにメモリ領域を確実にお返しになる事なんか保証してない事は覚えておこうな
言語仕様はvectorの何やらはもちろん、deleteだってfreeだって、OSにメモリ領域を確実にお返しになる事なんか保証してない事は覚えておこうな
443デフォルトの名無しさん
2020/01/20(月) 12:33:54.17ID:RAANiraF444デフォルトの名無しさん
2020/01/20(月) 12:52:13.55ID:JGG/x92o >>443
いや空とswapすれば減るじゃん
いや空とswapすれば減るじゃん
445デフォルトの名無しさん
2020/01/20(月) 13:22:01.92ID:hv8WW6TF >>444
空とswapは場当たり的に見えて却下と質問者様がおっしゃったからこの論争になったんだぞ
空とswapは場当たり的に見えて却下と質問者様がおっしゃったからこの論争になったんだぞ
446デフォルトの名無しさん
2020/01/20(月) 13:22:46.08ID:SZK6NMcF447デフォルトの名無しさん
2020/01/20(月) 14:27:22.95ID:0GX6odYx 概出鴨試練蛾
do{...}while(0); と
{...} の違いって決定的なのは何かって
break; を入れられるかどうかだと思うんだけど
ループじゃないものに do{...}while(0); を使うのは可笑しいって派の人らは
後者に break; 入れられるようにしておけば良かっただけなんだよな
do{...}while(0); と
{...} の違いって決定的なのは何かって
break; を入れられるかどうかだと思うんだけど
ループじゃないものに do{...}while(0); を使うのは可笑しいって派の人らは
後者に break; 入れられるようにしておけば良かっただけなんだよな
448デフォルトの名無しさん
2020/01/20(月) 14:50:16.98ID:hv8WW6TF ループする気もないのにループ構文を使うのは誤解の元
同様のことは他にもいくつも手段はあるのにループを使う必要がない
モダンな書き方だと[&](){...}();
同様のことは他にもいくつも手段はあるのにループを使う必要がない
モダンな書き方だと[&](){...}();
449デフォルトの名無しさん
2020/01/20(月) 15:02:12.80ID:KVDidwnp 違うだろ
while使わないよ派はgotoで充分だろ
ブロックを抜けるbreakが欲しいのは現状while使うよ派だろ
while使わないよ派はgotoで充分だろ
ブロックを抜けるbreakが欲しいのは現状while使うよ派だろ
450デフォルトの名無しさん
2020/01/20(月) 15:15:43.28ID:0GX6odYx once{};
みたいな構文で良いんじゃね
マクロとか書けば
みたいな構文で良いんじゃね
マクロとか書けば
451デフォルトの名無しさん
2020/01/20(月) 15:21:36.51ID:hv8WW6TF マクロ()
ベターCとか03で脳みそ止まってんだろうなw
ベターCとか03で脳みそ止まってんだろうなw
452デフォルトの名無しさん
2020/01/20(月) 15:26:55.87ID:0GX6odYx C++スレだからlambdaでも許されるけどCだと使えないやん?
453デフォルトの名無しさん
2020/01/20(月) 15:29:38.41ID:hv8WW6TF ほぉ、じゃあお前はCで使える文法のみでC++を書いてんだな
ボケてんのか?
ボケてんのか?
454デフォルトの名無しさん
2020/01/20(月) 17:52:26.33ID:SZK6NMcF455デフォルトの名無しさん
2020/01/20(月) 20:28:01.32ID:KSbNzMqr 結局、gotoは使わないほうが良いのですか?
456デフォルトの名無しさん
2020/01/20(月) 20:51:28.03ID:SZK6NMcF { から } までを1命令と読めるようにするのにgotoは無用と言っているに過ぎない
そのようにまとめようとしていないときやgotoを使っても1命令と読める場合にまで
GOTO有害説に囚われ強弁するのは何も分かってないやつのすることということだ
そのようにまとめようとしていないときやgotoを使っても1命令と読める場合にまで
GOTO有害説に囚われ強弁するのは何も分かってないやつのすることということだ
457デフォルトの名無しさん
2020/01/20(月) 20:56:48.81ID:rZl1icD3 つまんないことに拘りすぎ
どっちでもええがな
どっちでもええがな
458デフォルトの名無しさん
2020/01/20(月) 21:36:31.23ID:hWOi4sNW >>448
今だとdo-whileでループする方が誤解の元になりそうな。
今だとdo-whileでループする方が誤解の元になりそうな。
459デフォルトの名無しさん
2020/01/20(月) 21:38:12.73ID:jzGRQ/VP #define BLOCK(stmt) do { stmt; } while(0);
BLOCK(
if (error) break;
);
BLOCK(
if (error) break;
);
460デフォルトの名無しさん
2020/01/20(月) 21:53:50.81ID:IuISEeYy do{}while(0)とか初めて見たけど
ダサすぎてそりゃ思いつかねーわwww
ダサすぎてそりゃ思いつかねーわwww
461デフォルトの名無しさん
2020/01/20(月) 21:55:40.09ID:dqQuCzGx 結局goto有害説に流されないオレカッケーが言いたいだけだろ?
それでもgotoが有効な場面なんかないけどな。禁止にしても問題なんかない。
それでもgotoが有効な場面なんかないけどな。禁止にしても問題なんかない。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【工作員】「X」のアカウント所在地公開機能が暴いた世論操作の実態 MAGA支持著名アカウントの多くが米国外から運営 日本にも波及 [ごまカンパチ★]
- たぬかな、結婚していた SNSで報告 生配信では入籍時期も説明 祝福殺到「おめでとう!」「幸あれ」 [muffin★]
- 【高市関税キター!!】個人輸入・少額輸入品への税優遇見直しへ…中国の通販サイトなどからの大量輸入を懸念 [1ゲットロボ★]
- 自民 国会議員の歳費 月額5万円引き上げ 今国会での成立目指す [どどん★]
- 「クラウンに乗りたかった」東京・足立の車暴走 男性、容疑を否認★2 [七波羅探題★]
- 「車を処分してください」生活保護の窓口 取材で見えた利用者の実情 [少考さん★]
- 【高市悲報】月刊WiLL1月特別号の表紙🤮🤮🤮 [731544683]
- 自民党閣僚関係者「党内外問わず高市総理に批判的なことを言える空気ではない」 [834922174]
- 今彼女にフェラさせながらなんGやってるけど質問ある?
- 【動画】慶應准教授の有野氏、高市答弁の問題点を理路整然と指摘しまいネトウヨ発狂wwwwwwwwwwww [271912485]
- 高市首相、簡単な英語も通訳必須だった。日本の報道機関は捏造してたの? [633746646]
- 【悲報】中国人、気付いてしまう「前みたいに日本製品の不買運動やろうとしても、今時日本製品なんか買ってる奴ほぼおらんかったわ……」 [624898991]
