[過去ログ] C++相談室 part165 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
926
(1): デフォルトの名無しさん (ワッチョイ 7fa1-0ra6) [sage] 2025/04/13(日) 11:05:14.04 ID:MoeuBZp20(4/4) AAS
ライブラリ設計ではなくて特定のアプリケーション内のアプリケーションロジックということなら
呼び出し元のバグはassert()なりで引っ掛けて十分テストするとか検出次第abort()してしまうという安直解決手はつかえまつがね……
927: デフォルトの名無しさん (ワッチョイ 277c-jwrR) [sage] 2025/04/13(日) 11:30:44.32 ID:zW1FzTwb0(1/2) AAS
「C++のクソなとこを反面教師にしますた!」を標榜してる言語もだいたい例外は持ってるんだよなあ
928: デフォルトの名無しさん (オイコラミネオ MM0b-z3tz) [sage] 2025/04/13(日) 13:17:51.55 ID:cgsGBgQOM(4/8) AAS
c,c++プログラマって縦に長いコード書くよね
929: デフォルトの名無しさん (オイコラミネオ MM0b-z3tz) [sage] 2025/04/13(日) 13:24:42.29 ID:cgsGBgQOM(5/8) AAS
一つの関数にずらずらそのまんま一続きの手続きを書いてる

関数の入り口でif判定の群れでその次はwhileの囲まれた深いfor
中にも数段階階層のあるif これが非常にわかりにくい
出てもif並んでて、次でまたforループとか
意味でわけようとしてないけど、上に書かれたような一度しか呼ばれない関数は書かないという方針なのかもしれない
読むのめんどくさい
930: デフォルトの名無しさん (ワッチョイ a75f-A6GO) [sage] 2025/04/13(日) 13:31:35.49 ID:wdBPVi5v0(1/3) AAS
case文とラムダ式だらけの長いコードなら見た事あるわw
931: デフォルトの名無しさん (オイコラミネオ MM0b-z3tz) [sage] 2025/04/13(日) 13:38:49.68 ID:cgsGBgQOM(6/8) AAS
そういうのは仕方ないけど
関数で何らかのvectorを入力値として受け取ってまずそれの検証をしてループで何らかの処理やら分析をして特徴をリストアップ
その後それを基にまた解析して最後に出力用に整形して直接printf

ここまでが一関数で縦に並んでる
自分ならすぐ下請け関数作る

GUIなどのコンポーネントも同じでDrawLineが並んでるとかなり残念な気持ちになる
速度重視なのだろうか
自分ならDrawFrameとか対象別に関数に分けてるけど
932: デフォルトの名無しさん (アウアウウー Sacb-gg6d) [sage] 2025/04/13(日) 13:42:08.58 ID:4yNzrwxra(1/2) AAS
>>915
915(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 2732-u90l) [sage] 2025/04/13(日) 00:48:59.24 ID:PZbFvNAM0(1/3) AAS
>>909
抽象化モデルが非効率だったと何年もたってから発覚したときにはそのモデルに依存しきっていて全体の書き直ししか修正しようがないということをリーナスは書いている。
プログラムを凝らずに書けることが良いというよりは、凝ったプログラムが柔軟性がない (修正しにくい) ことを問題視してるように見える。

実行効率はやってみないとわからん場合もあるし事情が変わる場合もあるから、ある時点で設計として真っ当であってもずっとそうだとは限らんのだな。
その理由だとRustもアウトか
南無南無
933: はちみつ餃子◆8X2XSCHEME (ワッチョイ 2732-gGXF) [sage] 2025/04/13(日) 14:08:52.79 ID:PZbFvNAM0(3/3) AAS
ラダー図や状態遷移図などの形で設計してからコードに落とし込むような場合は愚直にダラダラと書いたほうが良いということもある。
元の設計図と一対一に対応するから。
理解するために読む必要があるならそのときに見るのはコードではなく設計図だから見通しの悪さは問題にならない。

一見してコードがクソなように見えても工程全体を見ないと妥当性はわからない。
わからないけど大体の場合にはクソなのが現実ではあるだろうけどさ。
934: デフォルトの名無しさん (ワッチョイ a75f-A6GO) [sage] 2025/04/13(日) 14:12:51.06 ID:wdBPVi5v0(2/3) AAS
if文のネストは2段まで
case文内は3行まで
1行は80文字以内
とかコーディングルールがあるはず
935: デフォルトの名無しさん (オイコラミネオ MM0b-z3tz) [sage] 2025/04/13(日) 14:20:23.68 ID:cgsGBgQOM(7/8) AAS
いい悪いじゃなくて本当に縦に長い
見づらい
2画面上のwhileループ前なんて見たくない
936: デフォルトの名無しさん (ワッチョイ 7f10-W6ws) [sage] 2025/04/13(日) 14:24:13.96 ID:Mc7Qy6UQ0(1) AAS
書いたステップ数で会社での評定が決まるのだから短く簡潔に書くのは大損
徹底的にだらだら冗長に書いて行数を増やすべき
自分を大事に!自分を第一に!
937: デフォルトの名無しさん (オイコラミネオ MM0b-z3tz) [sage] 2025/04/13(日) 14:25:22.49 ID:cgsGBgQOM(8/8) AAS
それだったら関数に分けたほうが稼げる気がするけど
938
(1): デフォルトの名無しさん (ワッチョイ 277c-jwrR) [sage] 2025/04/13(日) 14:43:21.80 ID:zW1FzTwb0(2/2) AAS
大昔や一部の組み込みみたいなスタックや関数呼び出しのコストが重い世界だと
余分な関数書くな全部main()に納めろみたいな文化もある
939: デフォルトの名無しさん (ワッチョイ a75f-A6GO) [sage] 2025/04/13(日) 14:45:54.31 ID:wdBPVi5v0(3/3) AAS
>>938
ワンチップマイコンとかかなぁ
940: デフォルトの名無しさん (アウアウウー Sacb-gg6d) [] 2025/04/13(日) 15:14:08.46 ID:4yNzrwxra(2/2) AAS
stack8段しかないとかならそうなるわね
941: デフォルトの名無しさん (ワッチョイ 2781-0Spt) [sage] 2025/04/13(日) 21:40:21.31 ID:ui4bTaon0(1) AAS
基本はdon't repeat yourselfかね。

繰り返しで無いのなら縦長のブロックも許容できる。
942: デフォルトの名無しさん (ワッチョイ bf1a-wr60) [sage] 2025/04/13(日) 22:13:41.04 ID:b1PigeDH0(2/2) AAS
コンテキストの量にもよるよな
高速化の結果複雑なコンテキストになること多いけど、そうなると関数分けが難しくなる
943: はちみつ餃子◆8X2XSCHEME (ワッチョイ 2732-u6Dv) [sage] 2025/04/15(火) 09:57:20.08 ID:jku5RD3N0(1) AAS
極端にリソースが制限されているマイコンの場合はそもそも C や C++ が適した選択肢なのかどうかという疑問がある。
どうせインラインアセンブラまみれになるのだし、いっそマクロアセンブラのほうが見通しが良い気がするよ。
944: デフォルトの名無しさん (ワッチョイ 5f11-gGXF) [] 2025/04/15(火) 11:01:48.32 ID:l4YFawe/0(1) AAS
【脳科学】「政治行動の激しさ」に関連する脳回路の存在が研究で判明 [すらいむ★]
2chスレ:scienceplus

上記のリンクをたどったリンク先の本文とコメントを読まれると・・・
余裕ありますか・・・
大々的にインターネット上にばらまかれました!
945: デフォルトの名無しさん (ワッチョイ 7f10-3hik) [sage] 2025/04/15(火) 11:31:51.94 ID:vVagySV10(1) AAS
>>925-926
C++26で事前条件事後条件が入るっしょ、他の言語ほど凝ったものではなく単なるassertの別記法ではあるけど
バグなんだから検出次第即落として問題ないし
946: デフォルトの名無しさん (ワッチョイ ff1d-NDjU) [sage] 2025/04/15(火) 20:44:04.00 ID:WjK3uBtU0(1) AAS
contractsのこと言ってるのなら単なるassertの別記法ではないぞい
947
(1): デフォルトの名無しさん (ワッチョイ ff3d-/z+w) [] 2025/04/17(木) 00:57:26.62 ID:TtQSF/vr0(1) AAS
>>923
923(1): デフォルトの名無しさん (ワッチョイ 7fa1-0ra6) [sage] 2025/04/13(日) 10:48:07.97 ID:MoeuBZp20(2/4) AAS
>>921
ヒエッツ……、、、例外とスタックの関係について誤解が見受けられる……
例外発生時はスタックをアンワインドしてくれられるので(構築済みの)自動オブジェクトは解放される
もっとも救われるのはそれだけなので無神経なコーディングをしているとリソースリークがほとんど避けられないが
ヒープ領域はどうなんの?
948: デフォルトの名無しさん (ワッチョイ bfa4-wr60) [sage] 2025/04/17(木) 01:00:09.35 ID:A9DKvgPb0(1) AAS
>>947
生ポ使う方が悪い
949: はちみつ餃子◆8X2XSCHEME (ワッチョイ 2732-u6Dv) [sage] 2025/04/17(木) 01:58:20.90 ID:IaMMIkKx0(1) AAS
リソースの後始末はデストラクタでやる (スマートポインタの利用を含む) ように設計するのが基本ではあるが……。
どうしてもそうできない事情があるなら後始末が必要な場所で例外を一旦キャッチすればいい。

例外が投げられるのは例外が投げられるような状況に対処させるためだ。
対処が必要な箇所でキャッチするというシンプルな話だろ。
950: デフォルトの名無しさん (ワッチョイ f196-4ocp) [sage] 2025/04/20(日) 16:24:04.18 ID:Eo/IXC4V0(1) AAS
MCPって面白そうだけどもC++のSDKってないんだな
ラッパーとかないんかな?
1-
あと 52 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.025s