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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
1
(3): (ワッチョイ efda-9b8G) 2023/10/31(火)07:37 ID:+ZyYyqMO0(1) AAS
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
C++相談室 part164
2chスレ:tech VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
876
(1): (ワッチョイ 4d3e-Vpyu) 04/11(金)21:01 ID:yx7ZxPSb0(1) AAS
>>850
何を言っているのか全然わからん。
Rust開発者の主張は
「C/C++並に速くC/C++より安全」
だから、
「rustで一部の高速なシステムコールが追加されたらそれを使えばC++だろうが何だろうが関係なくなる」
というのが高速の話ならそりゃそうだろとしか。
Rustが違うと言っているのはそこじゃなくて、
「ビルド通ればダングリングポインタとかオーバーフローとか無いから安全だよ(safe rust なら)」
ということかと。
877
(1): (ワッチョイ 02ad-S7Iq) 04/11(金)21:03 ID:9wDK2WuU0(4/5) AAS
すぐさまサブ回線使いだすとか言う辺り、自分でもサブ回線使ってそうだよね
「rustで一部の高速なシステムコールが追加されたら」についての説明が出来ない時点でね
878: (オイコラミネオ MM95-exh5) 04/11(金)22:20 ID:qqgfnt32M(12/17) AAS
>>877
すぐ上のジジイは理解できてると言うのに…
879: (ワッチョイ 02ad-S7Iq) 04/11(金)22:23 ID:9wDK2WuU0(5/5) AAS
何を言われているのかも分かってないようだw
880: (オイコラミネオ MM95-exh5) 04/11(金)22:24 ID:qqgfnt32M(13/17) AAS
いやいやw
未だに
> 「rustで一部の高速なシステムコールが追加されたら」についての説明が出来ない時点でね
と言ってる時点で認知症だろ
881: (オイコラミネオ MM95-exh5) 04/11(金)22:29 ID:qqgfnt32M(14/17) AAS
ChatGPTにさっきのメッセージ食わせてみた

回答
たしかに、Rustで高速なシステムコールが追加されて、それを直接叩けるようになれば、言語による違いはある程度意味を失いますよね。
C++でもRustでも、結局はそのシステムコールにアクセスできるかどうかでパフォーマンスの上限が決まる。

ただおっしゃる通り、高速化しようとしてマルチスレッド+SIMDをガチで使い始めると、リソースの使い方が雑になりがちで、
他プロセスにまで影響出たりするのが悩ましいところ。
特に、CPUキャッシュやメモリ帯域を食い尽くすと、システム全体が重くなって「なんかPC遅い…」ってなるやつですね。
882: (ワッチョイ 46ee-PSZj) 04/11(金)22:34 ID:5PthuDCs0(3/5) AAS
恥の上塗りw
883: (オイコラミネオ MM95-exh5) 04/11(金)22:41 ID:qqgfnt32M(15/17) AAS
これぐらいの意味が取れないってどういうことなんだお前らは?
884: (ワッチョイ 4dd9-GhsC) 04/11(金)22:44 ID:Lf3Jev+n0(1) AAS
cmakeでbuildするC++プロジェクトのバイナリを配布したいんだが
この場合生成されたbinディレクトリを抜き出せばいいんでしょうか?
こういうことは初めてでよくわかりません
885
(2): (ワッチョイ 46ee-PSZj) 04/11(金)22:47 ID:5PthuDCs0(4/5) AAS
ChatGPTを使うにも知識と知恵がいるんだよ
バカは質問の仕方が下手
---
「Rustでシステムコールを追加する」という表現は 文脈によっては誤解を招きやすく、通常の意味では少し不適切 です

1. Rustで書かれたOSの中に、新たなシステムコールを実装する
→ 例:Rust製OS(例:Redox OSなど)にsyscallを加える。
→ この場合は正しい文脈。

2. Rustでカーネルモジュールを書いてシステムコールを追加する
→ 実現可能だがLinuxでは一般的ではなく、安全性に注意が必要。

3. RustでOSとやりとりするAPIを自作して、それを便宜的に「システムコール」と呼んだ
省1
886
(1): (オイコラミネオ MM95-exh5) 04/11(金)22:54 ID:qqgfnt32M(16/17) AAS
>>885
自分では意味が取れなかったんだろ?ただの馬鹿自慢だろ?
887
(1): (ワッチョイ 46ee-PSZj) 04/11(金)22:56 ID:5PthuDCs0(5/5) AAS
ほんとこいつ頭悪いw
どうバカにされたかも理解できない
888: (オイコラミネオ MM95-exh5) 04/11(金)22:57 ID:qqgfnt32M(17/17) AAS
>>887
それは自分だろw
そこに書いてある内容の真偽すら判定できないんだろw
889: (JP 0H66-GhsC) 04/11(金)23:09 ID:FTY9KFp+H(1) AAS
cpack使えばいいのか
自己解決
890: (ワッチョイ 0620-9hLw) 04/12(土)01:43 ID:wegzxSOP0(1) AAS
>>886
馬鹿な私に教えてください >>885 の1~3のどの意味だったんですか?
891: (ワッチョイ 2287-Q+wk) 04/12(土)02:47 ID:8WRtHLwQ0(1) AAS
ミネオ大先生! 随分とカジュアルな言葉遣いになられたんですね
892: (ワッチョイ 4597-Vpyu) 04/12(土)06:55 ID:9PpTsBpz0(1) AAS
>>850>>876で反論してやったんだからちゃんと反応しろよ。

「自分850はRustのことをよく知らないのに引き合いに出した間抜けでした」
というだけの話なのに、いつまでうんこみたいなレス重ねるんだよ。
893: (ワッチョイ cd7c-a/1F) 04/12(土)08:18 ID:O9vZbYm90(1) AAS
天才様くんは次に「俺様の天才的レスが理解できない白痴ばかりだな」と言い出す
相手するだけ無駄
894: (ササクッテロロ Spd1-gX4K) 04/12(土)08:50 ID:7ueEveVip(1) AAS
つまり、OSをrustで書き換えたらって話かなぁ?
895: (ワッチョイ 22f0-VGeA) 04/12(土)09:06 ID:KALSJULX0(1/2) AAS
それ、なんか嫌じゃね?w
896: (ワッチョイ 6e39-N10g) 04/12(土)09:17 ID:C5glPX3o0(1/2) AAS
こっちこい

結局C++とRustってどっちが良いの? 9traits
2chスレ:tech

こっちもみてるから、このスレが伸びたのかとおもうたわw
897: (ラクッペペ MM66-XbuE) 04/12(土)09:34 ID:VGLNjbvdM(1/2) AAS
24H2の売りはrustで書き換えたってとこだろ
グダグダだけど
898: (ワッチョイ 22f0-VGeA) 04/12(土)09:39 ID:KALSJULX0(2/2) AAS
バカ矯正用言語だからな
899: (ワッチョイ ae21-xzp7) 04/12(土)12:41 ID:tVJvX2Kc0(1) AAS
Rustは生メモリを扱えなくしてスマートポインタしか使えないので安全だって聞いたけど
900: (ワッチョイ fefb-Upwm) 04/12(土)15:12 ID:50hOhfEU0(1/2) AAS
単純化すると「高速なAPIを呼ぶようにすればどんな言語でも高速になる」ってことだろ?
そりゃそうだろとしか思えんよな
話の肝は、「その言語で高速に組んだこと」だと思うのに

あれだろ、一番速い車の話しているときに「どんな車でも速い車に載せれば早くなれる」って言っているようなものだよな
知らんけど
901
(1): (ササクッテロロ Spd1-gX4K) 04/12(土)15:25 ID:X5lME/jLp(1) AAS
ハンドラを高速にしたって秒間何千回とか頻繁に呼んでるのでも無きゃ全体の処理速度は体感出来ないだろうに
902: (ラクッペペ MM66-XbuE) 04/12(土)16:44 ID:VGLNjbvdM(2/2) AAS
パワステの無いハンドル握ったこと無いんだろうなぁ
903: (ワッチョイ fefb-Upwm) 04/12(土)17:11 ID:50hOhfEU0(2/2) AAS
>>901
でも850は大半をシステムコールに頼ってる感じで言ってる気がするんだよな
そうでなきゃメインプログラム(呼び出し元の意)が足を引っ張るから、全体のスループットは下がるってわかるはずだし
なんなら、データを渡せば全部やってくれて結果を受けとるだけ、ぐらいに思ってる気がしないでもない
904
(1): (ワッチョイ 6ea1-pnyl) 04/12(土)19:49 ID:ctMpwM2A0(1/3) AAS
>>872
漏れは>>850以降の流れはノーコメント
905: (ワッチョイ 6ea1-pnyl) 04/12(土)19:51 ID:ctMpwM2A0(2/3) AAS
ひょっとしたらRustで書かれたRedoxはメチャクチャ速いのかもしれん……
906
(1): (オッペケ Srd1-N10g) 04/12(土)20:47 ID:Kq/N9vBkr(1) AAS
>>904
面白いことかけなかったら、だまっとけ

俺はかけない、だまっとく
書くならC++ かあちゃん愛してる
907: (ワッチョイ 6ea1-pnyl) 04/12(土)21:04 ID:ctMpwM2A0(3/3) AAS
>>906
>>850を書いた香具師と思われたら恥ずかしいし……
908
(1): (ブーイモ MM22-PSZj) 04/12(土)21:23 ID:laBjQjoGM(1) AAS
>>850書いたやつは知ったかぶりだけど
無理に話を広げると>>863に書いてるrustの特性に合わせた高速化ってありえると思う?
カーネルはメモリ空間別なんだし特にできることないよね?
909
(1): (ワッチョイ 6e39-N10g) 04/12(土)23:26 ID:C5glPX3o0(2/2) AAS
Cよりは「うまく」かけるけど、C++ほど「凝らずに」書けるのは、いいことのはず
Linusが、C++はボロクソ言ってNGしたが、Rustにはゴーサイン出したのは、そういうことだと思ってる
(念のために・後学のためにいっとくが、LinusはC++について、ユーザランドでは好きにしたらいいとも言ったはず)
910
(1): (オイコラミネオ MM0b-z3tz) 04/13(日)00:04 ID:cgsGBgQOM(1/8) AAS
>>908
並列化
911: (オイコラミネオ MM0b-z3tz) 04/13(日)00:06 ID:cgsGBgQOM(2/8) AAS
最初に書いたことは一切特別なことは書いてない
小学生でも流すような内容で当たり前の当たり前

それをアホが勘違いして騒いでいる
912: (ワッチョイ 5ff0-8xdJ) 04/13(日)00:11 ID:YJSdSOOz0(1/2) AAS
Linusが昔触ったC++コンパイラの出来が最悪でキレ散らかした
要するにC++の仕様が悪いわけではなくて当時のg++の出来の悪さに嫌気をさしてC++を触らなくなった
どっちにしろバカに危ういコードを書かせないようにするセーフティ機構を導入したところでバカがコーディングしている時点で22H2も史上最悪の大型アプデで終わってるワケなんだがな
913: (ワッチョイ 5ff0-8xdJ) 04/13(日)00:12 ID:YJSdSOOz0(2/2) AAS
まちげーた
×22H2 〇24H2

どっちにしろセンスのないやつに触らせたら終わる罠
914: (オイコラミネオ MM0b-z3tz) 04/13(日)00:14 ID:cgsGBgQOM(3/8) AAS
C++は継承があるからコードが追い辛いとかそんな理由だろう
cだと関数はその点簡潔に挙動が追いやすい
915
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 2732-u90l) 04/13(日)00:48 ID:PZbFvNAM0(1/3) AAS
>>909
抽象化モデルが非効率だったと何年もたってから発覚したときにはそのモデルに依存しきっていて全体の書き直ししか修正しようがないということをリーナスは書いている。
プログラムを凝らずに書けることが良いというよりは、凝ったプログラムが柔軟性がない (修正しにくい) ことを問題視してるように見える。

実行効率はやってみないとわからん場合もあるし事情が変わる場合もあるから、ある時点で設計として真っ当であってもずっとそうだとは限らんのだな。
916
(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ 2732-u90l) 04/13(日)01:02 ID:PZbFvNAM0(2/3) AAS
一度しか呼ばれないような関数は書かない (関数としてくくり出さない) とかいう方針の有名なプロジェクトがあったような気がするんだが、なんだったかわかる人はいる?
細部の処理の追いやすさとしてはそのほうが見通しがよいという論で、なるほどそういう考え方もあるんだなーと面白く思った記憶がある。
917: (ワッチョイ bf98-wr60) 04/13(日)01:35 ID:b1PigeDH0(1/2) AAS
>>910
解説頼むわ
rustじゃないとできない並列化って何?
918: (ワッチョイ bf02-ngEE) 04/13(日)01:36 ID:wr7CGYg/0(1) AAS
>>916
有名なというと、デビット・カトラーのNTカーネル開発ではなかったか

逆に、「関数は30行以内」だったかなルールが採用されており、
普通に描いたら40行とか行ってしまう関数を、25行ずつの呼び出し元関数と呼び出し先関数に
書き換えられることが頻繁にあった、というので有名だったのはFileMakerだったかな
919: (ワッチョイ 6797-0Spt) 04/13(日)06:32 ID:Aq/uJRNv0(1) AAS
Rust見て羨ましいと思ったのはスタックフレーム重視の言語設計かね。

効率化の観点からは入れ子構造・スタック構造が優れているんだから、スタックを崩す例外とかgotoは廃止してほしい。
あとスタックにある自動変数は関数呼び出しが乱れない限り存在が保証されるんだから、自動変数の参照しか受け付けない仮変数も欲しいところ。スマートポインタの参照は効率的だし、もっと安全に使えるようにしてほしい。
920: (ワッチョイ 7fa1-0ra6) 04/13(日)10:18 ID:MoeuBZp20(1/4) AAS
アイタタタ……つ∀`;)
921
(1): (ワッチョイ 07ad-GZf5) 04/13(日)10:31 ID:K92VhJDO0(1) AAS
例外はもう実行が続けられないんだからスタックが壊れても問題ない
それよりも、単なるエラーを例外として実装したコードが多いのが問題
std::optional など使え
922: (スフッ Sd7f-g0pP) 04/13(日)10:42 ID:3fI5Pb+md(1) AAS
>>916
emacs
923
(1): (ワッチョイ 7fa1-0ra6) 04/13(日)10:48 ID:MoeuBZp20(2/4) AAS
>>921
ヒエッツ……、、、例外とスタックの関係について誤解が見受けられる……
例外発生時はスタックをアンワインドしてくれられるので(構築済みの)自動オブジェクトは解放される
もっとも救われるのはそれだけなので無神経なコーディングをしているとリソースリークがほとんど避けられないが
924: (ワッチョイ 475f-8xdJ) 04/13(日)11:00 ID:c0pIh3Hj0(1) AAS
今後はよく反省し「スタック」を狩野英孝のホスト物まねの口調で「スタック~」と音読するようにしなさい
925
(1): (ワッチョイ 7fa1-0ra6) 04/13(日)11:02 ID:MoeuBZp20(3/4) AAS
ライブラリ設計者なら一部のエラーを例外のスローとしたくなる気持ちあるある……
こんなん明らかに使う側(呼び出し元)のバグじゃねーの?!というケースまで律儀にエラー値をreturnする設計にすると
かえって全員が不幸に……
926
(1): (ワッチョイ 7fa1-0ra6) 04/13(日)11:05 ID:MoeuBZp20(4/4) AAS
ライブラリ設計ではなくて特定のアプリケーション内のアプリケーションロジックということなら
呼び出し元のバグはassert()なりで引っ掛けて十分テストするとか検出次第abort()してしまうという安直解決手はつかえまつがね……
927: (ワッチョイ 277c-jwrR) 04/13(日)11:30 ID:zW1FzTwb0(1/2) AAS
「C++のクソなとこを反面教師にしますた!」を標榜してる言語もだいたい例外は持ってるんだよなあ
928: (オイコラミネオ MM0b-z3tz) 04/13(日)13:17 ID:cgsGBgQOM(4/8) AAS
c,c++プログラマって縦に長いコード書くよね
929: (オイコラミネオ MM0b-z3tz) 04/13(日)13:24 ID:cgsGBgQOM(5/8) AAS
一つの関数にずらずらそのまんま一続きの手続きを書いてる

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

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

GUIなどのコンポーネントも同じでDrawLineが並んでるとかなり残念な気持ちになる
速度重視なのだろうか
自分ならDrawFrameとか対象別に関数に分けてるけど
932: (アウアウウー Sacb-gg6d) 04/13(日)13:42 ID:4yNzrwxra(1/2) AAS
>>915
その理由だとRustもアウトか
南無南無
933: はちみつ餃子◆8X2XSCHEME (ワッチョイ 2732-gGXF) 04/13(日)14:08 ID:PZbFvNAM0(3/3) AAS
ラダー図や状態遷移図などの形で設計してからコードに落とし込むような場合は愚直にダラダラと書いたほうが良いということもある。
元の設計図と一対一に対応するから。
理解するために読む必要があるならそのときに見るのはコードではなく設計図だから見通しの悪さは問題にならない。

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

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

上記のリンクをたどったリンク先の本文とコメントを読まれると・・・
余裕ありますか・・・
大々的にインターネット上にばらまかれました!
945: (ワッチョイ 7f10-3hik) 04/15(火)11:31 ID:vVagySV10(1) AAS
>>925-926
C++26で事前条件事後条件が入るっしょ、他の言語ほど凝ったものではなく単なるassertの別記法ではあるけど
バグなんだから検出次第即落として問題ないし
946: (ワッチョイ ff1d-NDjU) 04/15(火)20:44 ID:WjK3uBtU0(1) AAS
contractsのこと言ってるのなら単なるassertの別記法ではないぞい
947
(1): (ワッチョイ ff3d-/z+w) 04/17(木)00:57 ID:TtQSF/vr0(1) AAS
>>923
ヒープ領域はどうなんの?
948: (ワッチョイ bfa4-wr60) 04/17(木)01:00 ID:A9DKvgPb0(1) AAS
>>947
生ポ使う方が悪い
949: はちみつ餃子◆8X2XSCHEME (ワッチョイ 2732-u6Dv) 04/17(木)01:58 ID:IaMMIkKx0(1) AAS
リソースの後始末はデストラクタでやる (スマートポインタの利用を含む) ように設計するのが基本ではあるが……。
どうしてもそうできない事情があるなら後始末が必要な場所で例外を一旦キャッチすればいい。

例外が投げられるのは例外が投げられるような状況に対処させるためだ。
対処が必要な箇所でキャッチするというシンプルな話だろ。
950: (ワッチョイ f196-4ocp) 04/20(日)16:24 ID:Eo/IXC4V0(1) AAS
MCPって面白そうだけどもC++のSDKってないんだな
ラッパーとかないんかな?
951
(1): (ワッチョイ b670-qtpD) 04/21(月)09:32 ID:W4eIGfRa0(1) AAS
MCPは単なるJSON-RPCだから仕様書とスキーマをAIに突っ込めばすぐできるでしょ
MCPサーバーなんてどうせAI丸投げで実装させるのが基本だし、
速度も完全にIOとLLMがボトルネックだから、わざわざC++で実装しようなどという奴はいないのだろう
952: 青木康善 (アウアウウー Sa21-0ulL) 04/21(月)20:22 ID:ArvlOry0a(1/2) AAS
reasonというソフトのrack extentionを作りたいです。
953
(2): 青木康善 (アウアウウー Sa21-0ulL) 04/21(月)20:23 ID:ArvlOry0a(2/2) AAS
javaの鉄則、では、goto文は使うな!と書いてましたが、皆さんどうっすか?
954: (ワッチョイ 797c-ixHo) 04/21(月)20:40 ID:NUGisEOi0(1) AAS
Dijkstra先生の例の論文でも読んでこい
955: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7932-imSP) 04/21(月)21:41 ID:++xqwTI40(1) AAS
>>953
防災設備みたいなものだ。
使わないで済むほうが良いけど必要なときに避けようとすれば被害が大きくなる。

だけど goto は使わないで済むときに使ってしまうと更に被害が出る。
なので自分の判断に自信がないなら教条的に goto を避けたほうが全体としては比較的にマシなんだよ。

そもそも状況が理想的でないことも多いのだから理想通りにプログラムを構成できなくても仕方がない。
もうぐちゃぐちゃになってるものでもどうにかしなきゃならないときはあるだろ。
956: (ワッチョイ f969-3oCd) 04/21(月)22:36 ID:amcA96LQ0(1) AAS
>>953
プログラミングにおいて再帰は最も重要な構造であり、C++もスタックフレームやASTなど再帰的な構造を暗黙の了解として成り立っている。

しかしgotoはこの再帰構造を容易く破壊してプログラムに混沌をもたらす。よってgotoは使ってはならない。
957: (ワッチョイ b501-4ocp) 04/21(月)23:23 ID:7ucDJhu90(1) AAS
>>951
レス有難うございます
Oat++なるウェブフレームワークにoatpp-mcpなるライブラリがあるようです
まずはOat++から遊んでます
958: (ブーイモ MM3e-N74K) 04/22(火)07:13 ID:UYuDPI7gM(1) AAS
gotoが駄目ならlongjmpを使えば良いじゃない by マリー
959: (ワッチョイ 8af0-pFs9) 04/22(火)08:22 ID:oDpGVZXg0(1) AAS
setjmp/longjmpをANSIに詰め込んでるの💩だよね
960: 青木康善 (ワッチョイ 8a72-0ulL) 04/23(水)17:25 ID:4FkXeR/00(1) AAS
アドバイスありがとうございます。駿台電子のネットワークの先生が昔、あらゆるプログラミング言語の中で一番、処理が早いのはC++だと言っていたので、頑張ります。
961
(2): (ワッチョイ 5e85-M5IX) 04/23(水)23:23 ID:1cvTRmDz0(1) AAS
いまだにgoto論とかw
いかに効率的にAIに作らせるかの時代だぞ
誤差レベルの最適化なんかやってる場合かよ
962: (ワッチョイ 6639-nw4i) 04/24(木)00:55 ID:ClCGshC50(1) AAS
まずAIにテストをつくらせてだな。。
963: (ワッチョイ 6610-VXNn) 04/24(木)08:02 ID:3fimUhF30(1) AAS
C++使いはジジィが多いからAIどころかIDEすら拒絶してるもんな
70年代からずっとgoto論だのインデント文字数だのvi vs emacs論争をたぶん絶滅するまで続けてるよ
964: (ワッチョイ 5e01-3oCd) 04/24(木)08:42 ID:WKi0rg0u0(1) AAS
>>961
そのあたりは要件定義とかユースケースとかの話だから、問題領域が違うよ。

しかし>961もそうだけど、AIの使い方の話をしているやつからPM知識の匂いがしないのはなんでかね。
AI利用法とかPMで長年研究してきた問題と重複する部分が多いのに。
965: (ブーイモ MM3e-M5IX) 04/24(木)08:45 ID:YbDQClr8M(1) AAS
また香ばしいの来たなw
966: (ワッチョイ 8a1d-69r1) 04/24(木)11:46 ID:cjL4AtoW0(1/2) AAS
まずそのgotoの話し始めたコテがどう見ても知的に問題がありそうな感じなのに
そいつの話題に乗って語り始めちゃったところで、まともな結論にたどり着けるはずもなく…
967: (アウアウウー Sa21-NXaD) 04/24(木)13:24 ID:ndm7u60Wa(1) AAS
C++よりCの方が速い
968
(1): (ササクッテロロ Spbd-0ulL) 04/24(木)13:38 ID:rhg+hx6mp(1) AAS
まあ、クラス関数テーブル参照する分C++の方が遅いかなw
969: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7932-C6fW) 04/24(木)13:43 ID:pnRjJMwb0(1/2) AAS
クラス関数テーブルって何?
970: (ワッチョイ 8af0-pFs9) 04/24(木)13:51 ID:XeDfAgiK0(1) AAS
vtableのことかよ
最近のはプリフェッチ改善されてきているからな
971: (ワッチョイ b501-4ocp) 04/24(木)16:00 ID:ewKS50go0(1) AAS
>>968
メンバ関数は必ずvtableを参照するものではない(非仮想のメンバ関数)
参照しなければCと変わらん
Cでvtable相当のものを用意してそれを介して関数呼べば
仮想メンバ関数呼ぶのと変わらん
972: 青木康善 (アウアウウー Sa21-0ulL) 04/24(木)16:39 ID:aYrGN0fKa(1) AAS
rack extention作りますが、グラニュラーとstutterとフーリエ変換付けたら、デスマーチ状態になりそうだなあ。
973: (ワッチョイ 8a1d-69r1) 04/24(木)16:55 ID:cjL4AtoW0(2/2) AAS
ね、バカに反応するだけ時間の無駄だって
974: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7932-imSP) 04/24(木)20:09 ID:pnRjJMwb0(2/2) AAS
この場合に何を指してクラス関数という言葉を使ったか (そしてそれが速度的ペナルティに繋がると思ったか) は当人にしかわからんが、私なりに推測すると Java Python Ruby などで言うところのクラスメソッドから間違った類推をして得られた概念ではないかと思う。
これらの言語は「クラスはオブジェクトである」というパラダイムの世界で、抽象メソッドでもインスタンスメソッドでもない場合でも動的なディスパッチを必要とする場合がある。
もちろん C++ ではそうではなく、仮想関数を除けばコンパイル後には関数を指す唯一無二のアドレスが確定していて C の関数と比べて速度的不利はないし、仮想関数のようなことを C でやろうとすれば間接参照なり分岐なりのコストはどうせ必要なので仮想関数を C++ の速度的不利というのは無理筋だ。
ただ、充分な理解なく不必要に速度的不利な機能を使ってしまうことが (C よりは) 高いだろうという意味では C++ が不利と言えなくもないかもね。
975: (ワッチョイ 797c-ixHo) 04/24(木)20:50 ID:4KP0cuFt0(1) AAS
vectorは境界チェックするから遅くてゴミでCの配列には必要ないから最強だって暴れてた超天才Cグラマ様おったなあ
976: (オッペケ Srbd-nw4i) 04/24(木)23:12 ID:DqjjH7fdr(1) AAS
境界チェックはしてるんだけど、最適化の過程で霧散する…

…いまは、どこの言語もそのくらいはできるからね
977: 青木康善 (アウアウウー Sa21-0ulL) 04/24(木)23:14 ID:Nm4FYEaNa(1) AAS
オライリーで、head first C++が洋書で無いかなあ。
978: 青木康善 (アウアウウー Sa21-0ulL) 04/25(金)07:29 ID:IL/no3kVa(1) AAS
そりゃ、あなたたちは、プログラマーというサラリーマンなんだから、僕はバカですよ。。。とほほ。。。
979: (アウアウウー Sa21-NXaD) 04/25(金)14:23 ID:M7r6gaHPa(1) AAS
fstream iostream は糞ですね判ります
980
(2): (ワッチョイ 0a07-nw4i) 04/25(金)18:10 ID:nRYa5Nu+0(1) AAS
C++に触れるものは、遅かれ早かれ、duck test ってものを解する

バカのように振舞うな
981: (オイコラミネオ MM71-h0BB) 04/25(金)19:48 ID:fabJEISTM(1/2) AAS
なんでも基礎的な内容をしっかりと勉強しておけば後で役に立つから頑張ればよい
ジジイになる前に少しでも覚えろ
982: (オイコラミネオ MM71-h0BB) 04/25(金)20:07 ID:fabJEISTM(2/2) AAS
大昔はmemsetが最適化で消されて気が付かないで徹夜してデスク蹴ったりマウス投げたりしてたんだぞ
関数のアドレスすら存在しない超高速処理で速度的には超有利
流石C++
983
(1): (ワッチョイ 6639-nw4i) 04/26(土)02:15 ID:kmHF58M00(1) AAS
…あ。>>980 踏んでたわ

わっちょい自分は苦手で、やったことないんだわ
けっきょく、>>1 の、!extend* を、何行貼ったら、>>1 のようになるの
2行みえてるけど、3行貼ったらいいんだよな
984: (ワッチョイ b501-N74K) 04/26(土)05:38 ID:qC2gIsX80(1/2) AAS
昔と出力コードが変わったなと思うのはコプロ周りの処理がSSE前提になった事かなぁ
985: (ワッチョイ 1132-NXaD) 04/26(土)10:35 ID:pbPDl6lv0(1) AAS
>>983
C++相談室 part166
2chスレ:tech
986: (オイコラミネオ MM71-h0BB) 04/26(土)15:49 ID:G2uFKMwFM(1) AAS
みなさんはstd::filesystem::path使ってますか?それともただの文字列操作してますか
987: (アウアウウー Sa21-NXaD) 04/26(土)15:54 ID:IX/fzv3ga(1) AAS
boostの方のは使ってた
988: (ワッチョイ 66a1-0INX) 04/26(土)17:25 ID:DKbZdqM30(1) AAS
>>961
breakもcontinueもgotoの一種なのだから仕方が無い
行先がスコープの始まりか終わりに限定される、というのが良心的なだけで
実行フローをぐちゃぐちゃにできうる能力のはgotoとほとんど変わらないし、、、
for (i=0; i < 100; i++) {
  if (i == a) { continue; }
  if (i == b) { break; }
  if (i == c) { continue; } // i== aとi==cをまとめるとしたら、if (i == a && i != b && i == c) { continue; }としないとバグ
  if (i == d) { break; }
}
省3
989: (ワッチョイ 5ee3-M5IX) 04/26(土)21:55 ID:P90TCdD80(1) AAS
一生やってろよw
990: (ワッチョイ 66cf-jhy/) 04/26(土)23:03 ID:KeLpsr3P0(1) AAS
大量のコードが不可分にもつれあった状態を作れるgotoと
連接・分岐・反復という構造を崩さないcontinue/breakの
違いがわからないようならどうしようもない。
991: (ワッチョイ b501-N74K) 04/26(土)23:12 ID:qC2gIsX80(2/2) AAS
古いXLISPのソース見たら発狂するのかしら?
992: (ワッチョイ b77c-ko3M) 04/27(日)00:35 ID:J2DPm7Xn0(1) AAS
そんなに構造化が嫌なら最初から機械語で書けばいい
gotoしかないから楽しいかもよ
私は嫌です
993: (ワッチョイ ff39-VpId) 04/27(日)05:06 ID:sqtCgEt90(1/2) AAS
いや普通の機械語・アセンブラでも、いまどきキレイに書くからw

AIがコード生成しだしたらもうしらん あいつら疲れ知らずの限界なしだから
994: (アウアウウー Sa1b-Dl8r) 04/27(日)14:53 ID:rRExk4WBa(1) AAS
「機械語はgotoしかない」は明らかに嘘だな
995: (ワッチョイ 1701-7NrX) 04/27(日)15:18 ID:5TUg21k+0(1) AAS
せやば
996: はちみつ餃子◆8X2XSCHEME (ワッチョイ b732-jewZ) 04/27(日)17:44 ID:0aN/b0Iq0(1) AAS
ダイクストラが言う構造化プログラミングはモジュールとか抽象データ型とかも含む広範で抽象的な概念として説明されている。
連接・分岐・反復で構成しようという話はそれより前に発表されたものだが、この時代は構造化もクソもないプログラムがまかり通っていたという前提がある。
まずはその三要素を基礎に据えて構成したらわかりやすくね? という提案 (というか感想?) に過ぎず、それで全て事足りるみたいな主張ではない。
(理論上は連接・分岐・反復で全て表現可能であるという証明はされている。)

構造化プログラミングの考え方のキモは構造は人間の認知の中にあるということ。
人間が思考しているときの構造を書き表すためにどんな言語機能 (またはデザインパターン) があればよいの? ってのが構造化プログラミングの議論なんだよ。
書いた人が思ってる構造が表現されているなら構造化プログラミングだし、構造化プログラミングのために用意された機能を使っていても構造が表れていなければ構造化プログラミングではない。
まあついでに言えば書き表されたものについて (コンパイラも人間も) 検証しやすいことも大事だ。

機械的に goto を除去したらむしろ構造が失われるという例をクヌースが出したりもしていて、結局のところはどんな機能も正しく使えば正しいし、悪い使い方をすれば駄目になるというシンプルな話。
そんなわけで break が構造化を崩すか崩さないかは使い方による。
省1
997
(1): (ワッチョイ 9f35-3+vo) 04/27(日)18:16 ID:yHO53gwR0(1) AAS
ダイクストラがじゃなくてもうちょい場を学ぼう
便所でいきなり大声で演説垂れ始める人がいたらみんな引くもんなんだよw
998: (ワッチョイ ff39-VpId) 04/27(日)19:25 ID:sqtCgEt90(2/2) AAS
>>997 >>997
999: (スフッ Sdbf-Nh+M) 04/28(月)10:15 ID:3WBgyNGdd(1) AAS
連接と分岐があれば反復は要らない説
1000: (ワッチョイ 7732-Dl8r) 04/28(月)10:19 ID:AuNLagCl0(1) AAS
C++相談室 part166
2chスレ:tech
仲良く使ってね
1001
(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 545日 2時間 41分 30秒
1002
(1): 1002 ID:Thread(2/2) AAS
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。

───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
省4
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s