- 1 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 17:56:53.03 ID:uFDqtnkl.net]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part146 https://mevius.5ch.net/test/read.cgi/tech/1573094136/ このスレもよろしくね。 【初心者歓迎】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/ (日本語) STLつかうと一気に実行ファイルサイズが10倍に?! 環境によるだろ。 俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力 ランタイムを使用するようにして使っているが、例えばstd::vectorを 使っても使わない時と比べ10Kほどしか増えない すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。 ↑え?だってお前、普通ダイナミックリンクするだろ? "ダイナミックリンク"す・れ・ば、ファイルサイズ**増えないです**
- 263 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 23:30:18 ID:gkNCY9ap.net]
- >>253,255
なるほど! ありがとうございます
- 264 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 00:35:48 ID:7a3J15MS.net]
- >>256
いえいえ
- 265 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 08:07:26.85 ID:Af26ZTs6.net]
- >>257
楽しい?
- 266 名前:デフォルトの名無しさん mailto:sage [2020/01/16(木) 01:26:49.29 ID:Ue561N6A.net]
- C#使ってきたわい、C++入門するにあたって何から手を付けたらいいか分からない
江添の入門本読んだらええの?
- 267 名前:デフォルトの名無しさん mailto:sage [2020/01/16(Thu) 04:14:44 ID:SACm472n.net]
- +を重ね合わせないでずらして書くと#じゃなくて++になるやろ
つまりそういうことや
- 268 名前:デフォルトの名無しさん mailto:sage [2020/01/16(木) 06:13:59.73 ID:iXD/XJ1o.net]
- あんなカス本読むならビャーネの本とeffective系統を何冊か読んだ方がよっぽど為になる。
- 269 名前:デフォルトの名無しさん mailto:sage [2020/01/16(木) 08:12:06.71 ID:+e0TuAjq.net]
- 俺も自分の経験からは禿の本をオススメすることになる
- 270 名前:デフォルトの名無しさん mailto:sage [2020/01/16(Thu) 18:58:35 ID:aiRikJgB.net]
- C++においてハゲとは神を意味するからな
- 271 名前:デフォルトの名無しさん mailto:sage [2020/01/16(Thu) 20:10:19 ID:5A9213qe.net]
- また髪の話ししてる
- 272 名前:デフォルトの名無しさん [2020/01/17(金) 02:03:14 ID:nV1+qdjp.net]
- C++でウィンドウ関係の処理を組もうと思っているのですが、
最近だとMFCではなく.Net Framework を利用するのでしょうか?
- 273 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 02:20:28 ID:oPB0sz0H.net]
- いいえ
- 274 名前:デフォルトの名無しさん [2020/01/17(金) 02:26:05 ID:gAZZjojh.net]
- WebGL
- 275 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 06:22:56.76 ID:BtsrcJh0.net]
- Win32APIが主流ですよ
- 276 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 07:24:00.72 ID:sP/gsAG3.net]
- >>265
MFC抜きでWin32APIだけでコード書くことがあるけど正直無駄な苦痛を感じるよ MFCもダサいとこあるけどMFCでできることと同じ内容のコードを書いてると泣けてくる
- 277 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 08:02:37.47 ID:6PrSA6bz.net]
- WTLってどうなの?
- 278 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 08:03:39.75 ID:+NTDhbdd.net]
- 純粋仮想関数の=0の右辺って定数式なんでしたっけ
- 279 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 08:55:06 ID:9u9GYVKv.net]
- 0じゃないか?
- 280 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 09:17:21 ID:r0ibn4Bf.net]
- オブジェクトを明示的に破棄する方法ってある?
自分で new したなら delete すれば良いと思うが、STL コンテナ等の場合はどうすれば良いかという質問です。 例えば巨大な vector を作って何らかの作業をした後、もうその vector は用無しでメモリがもったいないからスコープを抜けるのを待たずに破棄したいみたいな状況を想定してます。
- 281 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 09:19:05 ID:oRcV/dFn.net]
- >>271
純粋仮想関数であることを示すための専用の構文らしい。pure-specifierという。
- 282 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 09:22:16 ID:8wRp1qeu.net]
- >>273
空とswap
- 283 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 09:26:42 ID:r0ibn4Bf.net]
- >>275
場当たり的な対処に思えますが、そういうのが嫌ならマメにスコープを切れということでしょうか。
- 284 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 10:03:31 ID:jP7OzWuZ.net]
- >>276
じゃあvectorをnewしたらいいじゃん 頭使えよ
- 285 名前:デフォルトの名無しさん [2020/01/17(金) 11:18:09 ID:fMuYUnvE.net]
- >>265
tcl/tk wxWidgets Qt
- 286 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 12:09:31 ID:FiFP8PG3.net]
- Qtはメジャーな製品でよく使われてる印象がありゅ
- 287 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 12:12:10.21 ID:oPB0sz0H.net]
- MS製にこだわって頑なにMFCみたいな化石使ってる奴いるけど普通にサードパーティのツールキット使うのが主流
- 288 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 12:58:41.79 ID:sP/gsAG3.net]
- 他人のところの事情も知らんくせにシッタカこくと
聞こえたやつ全員からそれぞれ色んな理由でアホにされるぞ
- 289 名前:デフォルトの名無しさん [2020/01/17(金) 13:10:35.05 ID:fMuYUnvE.net]
- GTKは糞
- 290 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 13:38:21.01 ID:oPB0sz0H.net]
- >>281
選択肢に.NETが出てくるあたり何の制約もない状況でサードパーティが使えない理由とは?
- 291 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 14:31:40 ID:sP/gsAG3.net]
- 身バレするから書かない
- 292 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 14:39:28 ID:8NRoOtOw.net]
- スレ違いでしょ。続きはWin32APIスレに移動してどうぞ。
- 293 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 15:05:49 ID:r0ibn4Bf.net]
- vectorをnewする?
ゴミみたいなこと言うな
- 294 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 15:19:25 ID:yexmiyzj.net]
- 質問する側の態度とは思えん
- 295 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 15:28:54 ID:WQqGcJSL.net]
- > 自分で new したなら delete すれば良いと思うが
良いと思ってるならvectorもnew/deleteで良いでしょ
- 296 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 15:35:23 ID:NjgiFnOV.net]
- vector newでいけない理由を先に説明してくれないと
- 297 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 17:45:27.47 ID:xt9i4Zu8.net]
- > スコープを抜けるのを待たずに
> 破棄したいみたいな状況を想定してます。 破棄するタイミングはコンパイラには分からんのだろ 人が判断するしかないなら「場当たり的」にやるしか無いのでは
- 298 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 17:56:19.89 ID:8NRoOtOw.net]
- vector::clear()、vector::shrink_to_fit() の連続実行で十分なのでは?
- 299 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 18:12:09.22 ID:2FWha3Nl.net]
- shrink_to_fit
capacity()をsize()に縮小させるというリクエストを行う。 実装依存の最適化を許可するために、縮小するという動作は仕様上強制されない。 縮小されないかもしれない、らしい
- 300 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 11:20:53 ID:Iw/95SDF.net]
- たいていは逆にスコープを破棄のタイミングに合わせるような書き方すればいいだろ。
分岐の激しい破棄条件書くくらいならそっちのが楽なことは多い。
- 301 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 11:59:37 ID:timcC3h8.net]
- while {
- 302 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 12:04:39 ID:timcC3h8.net]
- 途中で投稿してしまい失礼。
do { } while(0); で括って、処理が続行できない場合はbreakして、doループを抜けたすぐ下でで資源解放する古典的な記述でいいのでは。
- 303 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 12:12:16 ID:LluV6Hhd.net]
- 糞野郎にみんな親切だな
- 304 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 14:36:14.37 ID:cLOUBKze.net]
- gotoを避けるためにgotoよりクソなコードを書くのがいいわけねえだろ
- 305 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 14:54:44.30 ID:timcC3h8.net]
- ま、資源解放のコーディングが楽になるなら正義でしょ。
- 306 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 16:33:12 ID:cLOUBKze.net]
- >>298
確認するが、ここがC++スレということは忘れてないよな?
- 307 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 16:37:31 ID:sDwxplmd.net]
- メモリがもったいない言うけど、ホントにカツカツなのだろうか
環境的に余裕であれば妙なコーディングする意味がない
- 308 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:06:16 ID:6Wtj4R8r.net]
- どんくらいスキマと余裕があるのかを常時監視するソフトウェアはかんたんに作れる
なんせわたくしはC++を極めましたからな
- 309 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:37:07 ID:0qsbj5e6.net]
- >>297
gotoより糞な訳無いだろ こんな単純で頻出する制御構造が文法上ループにせざるを得ないのが悪いだけ まあtry catchと同型だが、これだと遅くなるしね
- 310 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:39:57 ID:cLOUBKze.net]
- >>302
doでない単純な複合文とgotoで済む話だ アホwバカwww
- 311 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:44:02 ID:0qsbj5e6.net]
- gotoだとRAII対応できないじゃん
- 312 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:44:36 ID:7kb+tsdB.net]
- すまねーよ。他の例外で飛ばされたらどうすんだ馬鹿。
- 313 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:46:21 ID:cLOUBKze.net]
- >>304
do(0) なんて持ち出すアホが RAII かよw
- 314 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:47:02 ID:0qsbj5e6.net]
- まあ最近は
[&]{ ... }(); で書くことが多いが
- 315 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:48:42 ID:0qsbj5e6.net]
- do{}while(0);の問題は知らない奴が混乱するって一点のみだろ
- 316 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:59:02 ID:cLOUBKze.net]
- 「知ってるやつ」の言い訳を、ここで開陳してもらおうか
最近、笑う健康法ができてないんで、よろしく頼むわ芸人さん
- 317 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:04:02 ID:0qsbj5e6.net]
- その前にgotoより糞ってのが既に成立してないじゃん
どこが糞なのか具体的に
- 318 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:10:26 ID:cLOUBKze.net]
- ははは、話を逸らすしかねえよな
「do{}while(0);の問題」てのが他の問題によって 成り立つのか成り立たねえのか影響されると 自ら自白してやがる(核爆 助けてやらねえよ、自分でなんとかしなアホwバカwww
- 319 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:15:23 ID:0qsbj5e6.net]
- 意味がわからないよ
煙に巻いて逃げる気かなw
- 320 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:19:10 ID:cLOUBKze.net]
- >>312
逃がさねえぞ 「知ってるやつ」の言い訳を、ここで開陳してもらおうか 最近、笑う健康法ができてないんで、よろしく頼むわ芸人さん
- 321 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:19:14 ID:65HS6FKB.net]
- やりたいことはスタックにあるvectorの早期解放なんだから
gotoもdo{}while(0)もラムダ式もいらない 単に{}で囲うだけでいい
- 322 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:20:27 ID:cLOUBKze.net]
- だよなwwwwwwwwwwww
- 323 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:23:34 ID:Upzp+V6z.net]
- ↓do { } while(0)でこれできたっけ?
if (cond) { goto label1; } do { 処理A label1: 処理B } while (0); YES! gotoならできる!! if (cond) { goto label1; } label2: 処理A label1: 処理B goto label2;
- 324 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:28:09 ID:Upzp+V6z.net]
- つか
do { 処理A; if (cond) { break; } 処理B; std::unique_ptr p(new Foo()); 処理C; // pを使用 } while (0); みたいな腐り切った腐敗臭しかしないコードを書くぐらいなら std::unique_ptr p; { 処理A; if (cond) { goto last; } 処理B; p = std::unique_ptr(new Foo()); 処理C; // pを使用 } last: ; と書くわ Perl風に
- 325 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:30:23 ID:v/DZPeDP.net]
- >>314
そんなことはお前ともう1名ほど除いて皆わかってる そうじゃなくて特定の条件で早期に開放したい場合にどうするかだよ >>315 味方が現れてウレションかよw
- 326 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:30:23 ID:cLOUBKze.net]
- ID:0qsbj5e出てこいオラ
- 327 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:34:58 ID:cLOUBKze.net]
- ID:0qsbj5e6 出てこい
- 328 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:42:46 ID:65HS6FKB.net]
- >>318
auto v = std::make_unique<std::vector<Hoge>>(...); ... if(特定条件){ v.reset(); } これだけの話では?
- 329 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:45:43.25 ID:cLOUBKze.net]
- そうそう
兆くだらねえ話だ(わざと誤字
- 330 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:47:11.24 ID:cLOUBKze.net]
- goto過敏症のアホどもが少しでも目を醒ましてくれるといいな
- 331 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:49:54.58 ID:v/DZPeDP.net]
- >>273
から読み直して 空moveが確実だけど質問者がそれを場当たり的と生意気言ったことから話が盛り上がるw
- 332 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:51:28.17 ID:v/DZPeDP.net]
- >>323
この場合gotoは何の解にもなっていないことにそろそろ気づいた方がいいよ
- 333 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:53:26.94 ID:v/DZPeDP.net]
- >>321
>>324 を読んでね
- 334 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:59:36.19 ID:0qsbj5e6.net]
- RAII対応してないから無理矢理goto出来るようにした糞コード上げられてもああ糞ですねと言うしかないんだが。
内部が複雑になってきたらその度にブロック外に変数追加して、変数の内容の初期化は必要に応じてって書き方を続けるつもりなんかね
- 335 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 22:27:52 ID:cLOUBKze.net]
- >>325
gotoが何かの解になったらいいの?wwwwwwww
- 336 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 22:28:06 ID:4nVoSga0.net]
- >>304
そうなんだっけ?
- 337 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 00:26:12.30 ID:M/ehGL7C.net]
- やっぱこういうコードは一度書いてみたいよな
try { label: 何かの処理; } catch (Exception ex) { goto label; }
- 338 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 00:32:09.37 ID:M/ehGL7C.net]
- gotoを使うと糞、と言う香具師は多いが
goto以外の構文も大概なことがある ↓これとか EnterCriticalSection(&csec); { if (エラー条件成立) { LeaveCriticalSection(&csec); throw "*** ERR ***"; } 何かの処理; } LeaveCriticalSection(&csec); 一体どうすれば…orz
- 339 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 00:36:14.30 ID:M/ehGL7C.net]
- いやまあテストラクトされるときにLeaveCriticalSection()するような
AutoLockオブジェクトを使えば済むっていやー済むが 裏返せばgoto以外の構文も糞製造機であることにはかわりわない!
- 340 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 00:38:55.96 ID:ocqIlbpk.net]
- それは構文が糞なんじゃなくてリソース管理が糞なだけ
- 341 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 01:24:22.15 ID:PgEzQeWd.net]
- auto lockなんてむしろ使ってなかったらPRでリジェクトされる
- 342 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 06:28:34 ID:6oeBvQPN.net]
- gotoの何が悪いのかを端的に表すたった一言が出てこない教条主義は物笑いの種
- 343 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 07:19:17.26 ID:M/ehGL7C.net]
- 誰にも迷惑がかからないgotoの例:
for (a = 0; a < 2; a++) { for (b = 0; b < 2; b++) { for (c = 0; c < 2; c++) { .... for (zaaa = 0; zaaa < 2; zaaa++) { 処理A if (何かの条件) { goto last; } 処理B } ... } } } last: ;
- 344 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 07:24:20.07 ID:M/ehGL7C.net]
- >>334
たまたまLeaveCriticalSection()はエラーを返さないが エラーを生じるブツだったらどうすんじゃ まあエラー通知先があれば良いのでやりようはあるが 加速度的に手が込んだコードが必要になって全体が糞化していくんじゃ!
- 345 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 07:35:30.18 ID:ilIPQsua.net]
- そもそもそのgotoを書きたくなるくらい深くネストしている時点でよくない説
- 346 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 08:03:07 ID:Wel1D6/w.net]
- >>338
対象とするデータによっては単純に多重ループで処理するのがもっとも自然でシンプルなケースもあるだろう。 無条件に「ネストしたループ(・A・)イクナイ!!」と言うのも教条主義じゃね?
- 347 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 08:05:11 ID:6oeBvQPN.net]
- 教条主義というよりただのバカ
- 348 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 08:08:17 ID:D5W6f6uH.net]
- gotoの使い方くらい知っておいた方が良いかと
- 349 名前:デフォルトの名無しさん [2020/01/19(日) 08:51:50 ID:2MN/c8bt.net]
- gotoにせよthrowにせよ、goto/throwの発生元が分からないのが受身になる側として辛い。
この点は、スタック情報へのアクセスが言語仕様として認められているJava/C#/Perl/Pythonに優位がある。
- 350 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 08:54:43 ID:M/ehGL7C.net]
- throwの発生元は例外オブジェクトに情報を持たせれば良いじゃん?
gotoのジャンプ元は変数に情報を持たせれば良いじゃん??
- 351 名前:デフォルトの名無しさん [2020/01/19(日) 09:02:38 ID:2MN/c8bt.net]
- >>343
goto/throw発生元がバイナリで配布されている場合は、コードを書き換えられない。 クラス設計でやたらとメンバ変数をprivateにされると、クラスを利用する側はメンバ変数を古典的プリントデバッグできなくて難儀する。
- 352 名前:デフォルトの名無しさん [2020/01/19(日) 09:04:12 ID:2MN/c8bt.net]
- C++のprivate属性は厳しすぎ。readonlyアクセスできる属性があってもいいと思うんだ。
- 353 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 09:11:24 ID:M/ehGL7C.net]
- >>344
バイナリ配布のブツの例外発生元を何でコードで知りたいのかがわからん… アドレスがわかったところでソースが無いわけやし…… 何事かを言わんとするための想定に無理が有るのでは…
- 354 名前:デフォルトの名無しさん [2020/01/19(日) 09:12:59 ID:2MN/c8bt.net]
- タイミング依存の不具合を追跡する必要に迫られると、当然ながら対話デバッグはできない。
C++のprivate変数が不具合に関与しているとわかってもランタイムで値を見れないのは辛い。 他人様の作ったC++クラスヘッダーを一時的に書き換えてコンパイルする羽目に。
- 355 名前:デフォルトの名無しさん [2020/01/19(日) 09:17:35 ID:2MN/c8bt.net]
- >>346
例外が吐かれた後にできることなんてほとんどなくてもスタックをダンプできるだけでかなり助かる。 特に自分が作ったわけではないレイヤーでthrowされた時には、スタック情報が役立つ。
- 356 名前:デフォルトの名無しさん [2020/01/19(日) 09:20:25 ID:2MN/c8bt.net]
- 公式がデバッグシンボルを配布するご時世なのに、C++のスタック仕様はそれについていけていない。
デバッガを介することなくスタックをダンプできる手段が制約されすぎ。
- 357 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 10:49:09 ID:CSTVsvTH.net]
- gotoはRAIIと相性が悪いってのが端的だろ
これはgotoが悪いと言うよりc++の言語仕様上のgotoの扱いが悪いって話 constexprで使えないとか規格が新しくなる度に不都合が増えていくよ
- 358 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 10:57:40 ID:RfLx+x9F.net]
- gotoの使い方くらい知っておいた方が良いかと
- 359 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 11:07:08.87 ID:fzpRtoDi.net]
- >>350
相性悪い?
- 360 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 11:07:41.05 ID:CSTVsvTH.net]
- 文字列パーサー内とかでの状態遷移に使うは推奨する
その他でのgotoは代替手段があるし、そっちの方が言語サポート良いからgoto使うのはバカのやること
- 361 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 11:12:09.60 ID:CSTVsvTH.net]
- まあ不遇な原因はgotoが自由すぎて前にも後ろにも飛べるせいだろうね
変数のデストラクタを呼ぶべきかどうかフラグ管理でもしないとコンパイラが判断できなくなる。 goto使うならその自由さが必要な場面でこそ使うべきなんだよ
- 362 名前:デフォルトの名無しさん [2020/01/19(日) 11:18:58.21 ID:2MN/c8bt.net]
- >>354
プログラミング言語の世界では、前や後ろという表現は直観的にわかりにくい。 前や後ろは相対的なものであり、バックしているイテレータにとっては前はバックなのだ。 上と下なら直観的にわかるだろう。
- 363 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 11:21:16.66 ID:CSTVsvTH.net]
- 用語としては前後で統一されているような
|

|