!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part163
https://mevius.5ch.net/test/read.cgi/tech/1672409791/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C++相談室 part164
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 33da-QP0H)
2023/05/09(火) 11:50:52.06ID:EYc2I7oW0959デフォルトの名無しさん (ワッチョイ 5101-CP9B)
2023/10/29(日) 23:41:12.89ID:JPy8qBbk0 C++モジュールについて
・CMakeが3.26で実験的対応、3.28で正式対応
・g++は対応状況が良くないが、2024年第二4半期に対応できるとKitwareは考えている
・VS2022最新版内臓のCMakeバージョンは3.26
・Clangとclはモジュールに対応している
・CMakeが3.26で実験的対応、3.28で正式対応
・g++は対応状況が良くないが、2024年第二4半期に対応できるとKitwareは考えている
・VS2022最新版内臓のCMakeバージョンは3.26
・Clangとclはモジュールに対応している
960デフォルトの名無しさん (ワッチョイ 13ad-c8RC)
2023/10/30(月) 13:05:26.07ID:bW5EQkS/0 Cスレで話題になっててちょっと疑問を質問
自分はgotoって全く使わないで書いているんだけど実際のところどうなんだろう
https://learn.microsoft.com/ja-jp/cpp/cpp/goto-statement-cpp?view=msvc-170
「可能な限り、goto ステートメントより break、continue、および return ステートメントを使用することをお勧めします。
ただし、break ステートメントはループの 1 つのレベルのみを終了するため、深い入れ子のループを終了するには goto ステートメントを使用する必要がある場合もあります。」
俺も深い入れ子のループを抜ける方法として
・ループ部分を関数化してreturn
・breakで抜けて if(/* 抜けた理由を再度評価 */) break; を繰り返す (※後述)
ということをしている
けどgotoで抜けるほうが楽だろうなと思うんだけど、まあ単純なバグ(プログラマーの見落とし)を除いてどういう問題があるんだろうか
for ( i = 0; i < 10; i++ )
{
printf_s( "Outer loop executing. i = %d\n", i );
for ( j = 0; j < 2; j++ )
{
printf_s( " Inner loop executing. j = %d\n", j );
if ( i == 3 ) break; // 内側のループ抜け
}
if ( i == 3 ) break; // 外側のループ抜け
}
自分はgotoって全く使わないで書いているんだけど実際のところどうなんだろう
https://learn.microsoft.com/ja-jp/cpp/cpp/goto-statement-cpp?view=msvc-170
「可能な限り、goto ステートメントより break、continue、および return ステートメントを使用することをお勧めします。
ただし、break ステートメントはループの 1 つのレベルのみを終了するため、深い入れ子のループを終了するには goto ステートメントを使用する必要がある場合もあります。」
俺も深い入れ子のループを抜ける方法として
・ループ部分を関数化してreturn
・breakで抜けて if(/* 抜けた理由を再度評価 */) break; を繰り返す (※後述)
ということをしている
けどgotoで抜けるほうが楽だろうなと思うんだけど、まあ単純なバグ(プログラマーの見落とし)を除いてどういう問題があるんだろうか
for ( i = 0; i < 10; i++ )
{
printf_s( "Outer loop executing. i = %d\n", i );
for ( j = 0; j < 2; j++ )
{
printf_s( " Inner loop executing. j = %d\n", j );
if ( i == 3 ) break; // 内側のループ抜け
}
if ( i == 3 ) break; // 外側のループ抜け
}
961デフォルトの名無しさん (アウアウウー Sad5-g+2W)
2023/10/30(月) 13:37:46.82ID:xnp7PI6ya >深い入れ子のループを終了するには goto ステートメントを使用する必要がある場合もあります
って描いてあるしそれが問題とは言ってないんじゃないか
って描いてあるしそれが問題とは言ってないんじゃないか
962デフォルトの名無しさん (ワッチョイ 297c-tLJy)
2023/10/30(月) 14:24:40.02ID:eEth4IuV0 とりあえずダイクストラ大先生の例の論文読もうぜ
963デフォルトの名無しさん (ワッチョイ 13ad-c8RC)
2023/10/30(月) 15:01:52.03ID:bW5EQkS/0 まあ問題あるならそもそも導入されるはずがないわけで問題ないのは分かるんだけど
「可能な限り〜お勧めします。」と言うように使用を推奨しない理由は何なのかなと
例えば特定の処理が飛ばされて動作しなくなる場合があるとかなんかな?と
「可能な限り〜お勧めします。」と言うように使用を推奨しない理由は何なのかなと
例えば特定の処理が飛ばされて動作しなくなる場合があるとかなんかな?と
964デフォルトの名無しさん (ワッチョイ 9b91-lnbO)
2023/10/30(月) 15:54:27.55ID:A0jdf3Dt0 それはrustのラベルbreakのような
安全なループの抜け方しか考えてないから安全で当たり前
c/c++のgotoはもっと凶悪なことができる
安全なループの抜け方しか考えてないから安全で当たり前
c/c++のgotoはもっと凶悪なことができる
965デフォルトの名無しさん (ワッチョイ 297c-tLJy)
2023/10/30(月) 16:23:23.04ID:eEth4IuV0 C++のgotoはちゃんとデストラクタを呼んでくれるから、意外とそんなに破滅的なことにはならんのだよね
だからって多重ループ脱出以外で使おうとは思わんけど
だからって多重ループ脱出以外で使おうとは思わんけど
966デフォルトの名無しさん (ワッチョイ 8101-VINR)
2023/10/30(月) 16:30:54.25ID:hnsSyQft0 俺は例外投げて脱出する
967デフォルトの名無しさん (ワッチョイ 9b91-lnbO)
2023/10/30(月) 16:35:01.03ID:A0jdf3Dt0968デフォルトの名無しさん (ワッチョイ 13ad-c8RC)
2023/10/30(月) 16:40:27.98ID:bW5EQkS/0 多重ループ脱出で使っている人って多いんかな?
他にこういう使い方しているとかってない?
他にこういう使い方しているとかってない?
969はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9b3e-g5YV)
2023/10/30(月) 16:45:14.84ID:I7fISnX+0 >>963
一般論としてはそのほうが分かりやすくなるからというだけのことだと思うよ。
ただ、それで分かりやすくならないとき、
チマチマした条件チェックであっちこっち行くよりは
流れをぶった切って goto したほうがいっそわかりやすいこともあるってのが
goto が必要な場面ってことなんだわ。
一般論としてはそのほうが分かりやすくなるからというだけのことだと思うよ。
ただ、それで分かりやすくならないとき、
チマチマした条件チェックであっちこっち行くよりは
流れをぶった切って goto したほうがいっそわかりやすいこともあるってのが
goto が必要な場面ってことなんだわ。
970デフォルトの名無しさん (ワッチョイ 8101-VINR)
2023/10/30(月) 17:14:03.48ID:hnsSyQft0 >>967
と言いますと?
と言いますと?
971デフォルトの名無しさん (ワッチョイ d9ab-txvC)
2023/10/30(月) 17:24:30.69ID:9eqG7NVC0 ラムダ式にする
972デフォルトの名無しさん (ワッチョイ 297c-tLJy)
2023/10/30(月) 17:57:47.45ID:eEth4IuV0 >>968
自分としては多重ループ脱出がC++でのgotoの唯一の実用的な用途だと思ってる(とはいえめったに使わない)
Cなら疑似finally的な後処理に使うこともあるけど、それはC++ならRAIIにすべきだしな
それ以外の戻ったり余所のスコープに侵入したりはもちろんCでもC++でも論外
自分としては多重ループ脱出がC++でのgotoの唯一の実用的な用途だと思ってる(とはいえめったに使わない)
Cなら疑似finally的な後処理に使うこともあるけど、それはC++ならRAIIにすべきだしな
それ以外の戻ったり余所のスコープに侵入したりはもちろんCでもC++でも論外
973デフォルトの名無しさん (ワッチョイ 8114-Qq8E)
2023/10/30(月) 18:39:22.51ID:VfsLhOLn0 何度も繰り返すgotoの話になると人が湧くな
974デフォルトの名無しさん (ワッチョイ 9b91-lnbO)
2023/10/30(月) 18:54:25.65ID:A0jdf3Dt0975デフォルトの名無しさん (ワッチョイ 5101-CP9B)
2023/10/30(月) 19:04:07.11ID:qWSrxYwr0 switchとgoto組み合わせて状態機械作ってる
976デフォルトの名無しさん (ワッチョイ 9b91-lnbO)
2023/10/30(月) 19:54:14.15ID:A0jdf3Dt0 gcc拡張のlabelのアドレスとれるやつとかな
昔はイキって使ってたわ
昔はイキって使ってたわ
977デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 20:16:27.75ID:hnsSyQft0978デフォルトの名無しさん (ワッチョイ 9b91-lnbO)
2023/10/30(月) 20:43:41.27ID:A0jdf3Dt0979デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 20:48:14.67ID:JbGfWzUOM ループ脱出レベルで例外を使うのは変だと感じる
関数抜けないのに例外なんて…
関数抜けないのに例外なんて…
980デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 20:54:46.61ID:JbGfWzUOM んで大昔に例外に似た機能のFound文Match文とか妄想してたんだな
実質タダのgoto文
実質タダのgoto文
981デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 20:54:46.86ID:hnsSyQft0982デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 20:57:56.27ID:JbGfWzUOM 例外は通常動作として起こらないような動作で起こすもので
何か探すループなんかで実際に対象が見つかったとしてそれは「例外」なのか?
ちがうだろー
何か探すループなんかで実際に対象が見つかったとしてそれは「例外」なのか?
ちがうだろー
983デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 20:58:12.43ID:hnsSyQft0984デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 20:59:51.11ID:hnsSyQft0 >>982
実にくだらない理由だと思う
実にくだらない理由だと思う
985デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 21:01:36.17ID:JbGfWzUOM >>984
それが一般的な解釈でおかしな使い方をしてる人間は影で笑われている
それが一般的な解釈でおかしな使い方をしてる人間は影で笑われている
986デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 21:06:32.49ID:hnsSyQft0 >>985
人格を攻撃するような書き込みはやめようね
人格を攻撃するような書き込みはやめようね
987デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 21:07:29.46ID:JbGfWzUOM 例外はパフォーマンス的に重いしそれ以前に
正常系の出力を異常系で投げるのはおかしい
まったくもって異常
正常系の出力を異常系で投げるのはおかしい
まったくもって異常
988デフォルトの名無しさん (ワッチョイ 297c-tLJy)
2023/10/30(月) 21:08:57.30ID:eEth4IuV0 よその言語ではイテレータの終了通知に例外使ってたりするから人格否定するほどの話ではない
C++の慣用としてやられてないし向いてないってだけ
C++の慣用としてやられてないし向いてないってだけ
989デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 21:09:03.25ID:JbGfWzUOM990デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 21:12:55.48ID:hnsSyQft0991デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 21:14:51.99ID:hnsSyQft0992デフォルトの名無しさん (ワッチョイ 9b91-lnbO)
2023/10/30(月) 21:19:13.29ID:A0jdf3Dt0993デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 21:19:21.17ID:JbGfWzUOM 非常に大切で根本的な理由と例を挙げたのに「実にくだらない理由」としか取られないのが残念
例外はただの制御構文ではない
例外はただの制御構文ではない
994デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 21:20:50.60ID:JbGfWzUOM995デフォルトの名無しさん (ワッチョイ 1bda-9b8G)
2023/10/30(月) 21:22:28.46ID:J+/7yoK80 凶悪といえばAnsiCのsetjmp()とlongjmp()
あれらを規格に入れてるのはキチガイとしか
あれらを規格に入れてるのはキチガイとしか
996デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 21:25:34.77ID:hnsSyQft0997デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 21:28:39.53ID:JbGfWzUOM >>996
概念だろ
それが一番大切で実装の基本だろ
C++自体の仕様が変わるとしても例外と言う概念に沿って変わることになるはずだ
今適当にマッチを投げていて仕様がより例外側に代わってその時その使い方は生き残れるのだろうか?
概念だろ
それが一番大切で実装の基本だろ
C++自体の仕様が変わるとしても例外と言う概念に沿って変わることになるはずだ
今適当にマッチを投げていて仕様がより例外側に代わってその時その使い方は生き残れるのだろうか?
998デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 21:31:50.44ID:hnsSyQft0 >>997
templateメタプログラミングとか許せない人ですか?
templateメタプログラミングとか許せない人ですか?
999デフォルトの名無しさん (ワッチョイ d1ad-AT6i)
2023/10/31(火) 06:57:27.99ID:BIE3G76Q0 Core Guideline にも例外はエラー処理だけに使えとある.
多重ループからの脱出が本当にエラー処理なの?
多重ループからの脱出が本当にエラー処理なの?
1000デフォルトの名無しさん (ワッチョイ 1379-JwVi)
2023/10/31(火) 07:21:48.58ID:1/1CCAX60 質問いいっすか?
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 174日 19時間 30分 57秒
新しいスレッドを立ててください。
life time: 174日 19時間 30分 57秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- ヤフコメ「中国への輸出がなくなる事で、日本国内で美味しくいただける事に感謝します」👈やたら政権寄りなのはなぜ?(´・ω・`) [399259198]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- ファブルに出てくる貝沼君ってのがお前らにそっくりなんだよ
- 俺「お湯を流してと…」シンク「ボンッw」
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- paypayで支払いするの便利すぎワロッタwwwwwwwwwwwwwww
