!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part164
https://mevius.5ch.net/test/read.cgi/tech/1683600652/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C++相談室 part165
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ efda-9b8G)
2023/10/31(火) 07:37:38.52ID:+ZyYyqMO0969はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-C6fW)
2025/04/24(木) 13:43:43.90ID:pnRjJMwb0 クラス関数テーブルって何?
970デフォルトの名無しさん (ワッチョイ 8af0-pFs9)
2025/04/24(木) 13:51:17.41ID:XeDfAgiK0 vtableのことかよ
最近のはプリフェッチ改善されてきているからな
最近のはプリフェッチ改善されてきているからな
971デフォルトの名無しさん (ワッチョイ b501-4ocp)
2025/04/24(木) 16:00:45.28ID:ewKS50go0 >>968
メンバ関数は必ずvtableを参照するものではない(非仮想のメンバ関数)
参照しなければCと変わらん
Cでvtable相当のものを用意してそれを介して関数呼べば
仮想メンバ関数呼ぶのと変わらん
メンバ関数は必ずvtableを参照するものではない(非仮想のメンバ関数)
参照しなければCと変わらん
Cでvtable相当のものを用意してそれを介して関数呼べば
仮想メンバ関数呼ぶのと変わらん
972青木康善 (アウアウウー Sa21-0ulL)
2025/04/24(木) 16:39:12.09ID:aYrGN0fKa rack extention作りますが、グラニュラーとstutterとフーリエ変換付けたら、デスマーチ状態になりそうだなあ。
973デフォルトの名無しさん (ワッチョイ 8a1d-69r1)
2025/04/24(木) 16:55:57.61ID:cjL4AtoW0 ね、バカに反応するだけ時間の無駄だって
974はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-imSP)
2025/04/24(木) 20:09:19.15ID:pnRjJMwb0 この場合に何を指してクラス関数という言葉を使ったか (そしてそれが速度的ペナルティに繋がると思ったか) は当人にしかわからんが、私なりに推測すると Java Python Ruby などで言うところのクラスメソッドから間違った類推をして得られた概念ではないかと思う。
これらの言語は「クラスはオブジェクトである」というパラダイムの世界で、抽象メソッドでもインスタンスメソッドでもない場合でも動的なディスパッチを必要とする場合がある。
もちろん C++ ではそうではなく、仮想関数を除けばコンパイル後には関数を指す唯一無二のアドレスが確定していて C の関数と比べて速度的不利はないし、仮想関数のようなことを C でやろうとすれば間接参照なり分岐なりのコストはどうせ必要なので仮想関数を C++ の速度的不利というのは無理筋だ。
ただ、充分な理解なく不必要に速度的不利な機能を使ってしまうことが (C よりは) 高いだろうという意味では C++ が不利と言えなくもないかもね。
これらの言語は「クラスはオブジェクトである」というパラダイムの世界で、抽象メソッドでもインスタンスメソッドでもない場合でも動的なディスパッチを必要とする場合がある。
もちろん C++ ではそうではなく、仮想関数を除けばコンパイル後には関数を指す唯一無二のアドレスが確定していて C の関数と比べて速度的不利はないし、仮想関数のようなことを C でやろうとすれば間接参照なり分岐なりのコストはどうせ必要なので仮想関数を C++ の速度的不利というのは無理筋だ。
ただ、充分な理解なく不必要に速度的不利な機能を使ってしまうことが (C よりは) 高いだろうという意味では C++ が不利と言えなくもないかもね。
975デフォルトの名無しさん (ワッチョイ 797c-ixHo)
2025/04/24(木) 20:50:08.03ID:4KP0cuFt0 vectorは境界チェックするから遅くてゴミでCの配列には必要ないから最強だって暴れてた超天才Cグラマ様おったなあ
976デフォルトの名無しさん (オッペケ Srbd-nw4i)
2025/04/24(木) 23:12:29.97ID:DqjjH7fdr 境界チェックはしてるんだけど、最適化の過程で霧散する…
…いまは、どこの言語もそのくらいはできるからね
…いまは、どこの言語もそのくらいはできるからね
977青木康善 (アウアウウー Sa21-0ulL)
2025/04/24(木) 23:14:17.38ID:Nm4FYEaNa オライリーで、head first C++が洋書で無いかなあ。
978青木康善 (アウアウウー Sa21-0ulL)
2025/04/25(金) 07:29:57.52ID:IL/no3kVa そりゃ、あなたたちは、プログラマーというサラリーマンなんだから、僕はバカですよ。。。とほほ。。。
979デフォルトの名無しさん (アウアウウー Sa21-NXaD)
2025/04/25(金) 14:23:29.54ID:M7r6gaHPa fstream iostream は糞ですね判ります
980デフォルトの名無しさん (ワッチョイ 0a07-nw4i)
2025/04/25(金) 18:10:11.03ID:nRYa5Nu+0 C++に触れるものは、遅かれ早かれ、duck test ってものを解する
バカのように振舞うな
バカのように振舞うな
981デフォルトの名無しさん (オイコラミネオ MM71-h0BB)
2025/04/25(金) 19:48:12.66ID:fabJEISTM なんでも基礎的な内容をしっかりと勉強しておけば後で役に立つから頑張ればよい
ジジイになる前に少しでも覚えろ
ジジイになる前に少しでも覚えろ
982デフォルトの名無しさん (オイコラミネオ MM71-h0BB)
2025/04/25(金) 20:07:56.20ID:fabJEISTM 大昔はmemsetが最適化で消されて気が付かないで徹夜してデスク蹴ったりマウス投げたりしてたんだぞ
関数のアドレスすら存在しない超高速処理で速度的には超有利
流石C++
関数のアドレスすら存在しない超高速処理で速度的には超有利
流石C++
983デフォルトの名無しさん (ワッチョイ 6639-nw4i)
2025/04/26(土) 02:15:34.80ID:kmHF58M00984デフォルトの名無しさん (ワッチョイ b501-N74K)
2025/04/26(土) 05:38:20.00ID:qC2gIsX80 昔と出力コードが変わったなと思うのはコプロ周りの処理がSSE前提になった事かなぁ
985デフォルトの名無しさん (ワッチョイ 1132-NXaD)
2025/04/26(土) 10:35:41.92ID:pbPDl6lv0986デフォルトの名無しさん (オイコラミネオ MM71-h0BB)
2025/04/26(土) 15:49:00.51ID:G2uFKMwFM みなさんはstd::filesystem::path使ってますか?それともただの文字列操作してますか
987デフォルトの名無しさん (アウアウウー Sa21-NXaD)
2025/04/26(土) 15:54:33.92ID:IX/fzv3ga boostの方のは使ってた
988デフォルトの名無しさん (ワッチョイ 66a1-0INX)
2025/04/26(土) 17:25:44.72ID:DKbZdqM30 >>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; }
}
また例外はスローする関数と条件を把握していない限り、
いつ炸裂するかわからないステルスgoto文がコード中にばらまかれているのとだいたい同じ……
従って構造化プログラミングで議論に結論がデタと考えるのは早計で、goto問題は永遠に古くて新しい問題……
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; }
}
また例外はスローする関数と条件を把握していない限り、
いつ炸裂するかわからないステルスgoto文がコード中にばらまかれているのとだいたい同じ……
従って構造化プログラミングで議論に結論がデタと考えるのは早計で、goto問題は永遠に古くて新しい問題……
989デフォルトの名無しさん (ワッチョイ 5ee3-M5IX)
2025/04/26(土) 21:55:33.90ID:P90TCdD80 一生やってろよw
990デフォルトの名無しさん (ワッチョイ 66cf-jhy/)
2025/04/26(土) 23:03:17.16ID:KeLpsr3P0 大量のコードが不可分にもつれあった状態を作れるgotoと
連接・分岐・反復という構造を崩さないcontinue/breakの
違いがわからないようならどうしようもない。
連接・分岐・反復という構造を崩さないcontinue/breakの
違いがわからないようならどうしようもない。
991デフォルトの名無しさん (ワッチョイ b501-N74K)
2025/04/26(土) 23:12:16.46ID:qC2gIsX80 古いXLISPのソース見たら発狂するのかしら?
992デフォルトの名無しさん (ワッチョイ b77c-ko3M)
2025/04/27(日) 00:35:43.45ID:J2DPm7Xn0 そんなに構造化が嫌なら最初から機械語で書けばいい
gotoしかないから楽しいかもよ
私は嫌です
gotoしかないから楽しいかもよ
私は嫌です
993デフォルトの名無しさん (ワッチョイ ff39-VpId)
2025/04/27(日) 05:06:56.76ID:sqtCgEt90 いや普通の機械語・アセンブラでも、いまどきキレイに書くからw
AIがコード生成しだしたらもうしらん あいつら疲れ知らずの限界なしだから
AIがコード生成しだしたらもうしらん あいつら疲れ知らずの限界なしだから
994デフォルトの名無しさん (アウアウウー Sa1b-Dl8r)
2025/04/27(日) 14:53:44.65ID:rRExk4WBa 「機械語はgotoしかない」は明らかに嘘だな
995デフォルトの名無しさん (ワッチョイ 1701-7NrX)
2025/04/27(日) 15:18:04.41ID:5TUg21k+0 せやば
996はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b732-jewZ)
2025/04/27(日) 17:44:14.12ID:0aN/b0Iq0 ダイクストラが言う構造化プログラミングはモジュールとか抽象データ型とかも含む広範で抽象的な概念として説明されている。
連接・分岐・反復で構成しようという話はそれより前に発表されたものだが、この時代は構造化もクソもないプログラムがまかり通っていたという前提がある。
まずはその三要素を基礎に据えて構成したらわかりやすくね? という提案 (というか感想?) に過ぎず、それで全て事足りるみたいな主張ではない。
(理論上は連接・分岐・反復で全て表現可能であるという証明はされている。)
構造化プログラミングの考え方のキモは構造は人間の認知の中にあるということ。
人間が思考しているときの構造を書き表すためにどんな言語機能 (またはデザインパターン) があればよいの? ってのが構造化プログラミングの議論なんだよ。
書いた人が思ってる構造が表現されているなら構造化プログラミングだし、構造化プログラミングのために用意された機能を使っていても構造が表れていなければ構造化プログラミングではない。
まあついでに言えば書き表されたものについて (コンパイラも人間も) 検証しやすいことも大事だ。
機械的に goto を除去したらむしろ構造が失われるという例をクヌースが出したりもしていて、結局のところはどんな機能も正しく使えば正しいし、悪い使い方をすれば駄目になるというシンプルな話。
そんなわけで break が構造化を崩すか崩さないかは使い方による。
ただ、常識的に考えて break は goto より構造を破綻させにくいだろうってだけ。
連接・分岐・反復で構成しようという話はそれより前に発表されたものだが、この時代は構造化もクソもないプログラムがまかり通っていたという前提がある。
まずはその三要素を基礎に据えて構成したらわかりやすくね? という提案 (というか感想?) に過ぎず、それで全て事足りるみたいな主張ではない。
(理論上は連接・分岐・反復で全て表現可能であるという証明はされている。)
構造化プログラミングの考え方のキモは構造は人間の認知の中にあるということ。
人間が思考しているときの構造を書き表すためにどんな言語機能 (またはデザインパターン) があればよいの? ってのが構造化プログラミングの議論なんだよ。
書いた人が思ってる構造が表現されているなら構造化プログラミングだし、構造化プログラミングのために用意された機能を使っていても構造が表れていなければ構造化プログラミングではない。
まあついでに言えば書き表されたものについて (コンパイラも人間も) 検証しやすいことも大事だ。
機械的に goto を除去したらむしろ構造が失われるという例をクヌースが出したりもしていて、結局のところはどんな機能も正しく使えば正しいし、悪い使い方をすれば駄目になるというシンプルな話。
そんなわけで break が構造化を崩すか崩さないかは使い方による。
ただ、常識的に考えて break は goto より構造を破綻させにくいだろうってだけ。
997デフォルトの名無しさん (ワッチョイ 9f35-3+vo)
2025/04/27(日) 18:16:26.55ID:yHO53gwR0 ダイクストラがじゃなくてもうちょい場を学ぼう
便所でいきなり大声で演説垂れ始める人がいたらみんな引くもんなんだよw
便所でいきなり大声で演説垂れ始める人がいたらみんな引くもんなんだよw
998デフォルトの名無しさん (ワッチョイ ff39-VpId)
2025/04/27(日) 19:25:43.76ID:sqtCgEt90999デフォルトの名無しさん (スフッ Sdbf-Nh+M)
2025/04/28(月) 10:15:47.67ID:3WBgyNGdd 連接と分岐があれば反復は要らない説
1000デフォルトの名無しさん (ワッチョイ 7732-Dl8r)
2025/04/28(月) 10:19:08.06ID:AuNLagCl010011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 545日 2時間 41分 30秒
新しいスレッドを立ててください。
life time: 545日 2時間 41分 30秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【日本大使館】中国在留邦人は安全確保を [ぐれ★]
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★10 [ぐれ★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 東京株式市場 インバウンド関連株が下落 中国政府の渡航自粛要請で [バイト歴50年★]
- 愛子、初の公式外国訪問でラオスに 日本の象徴一家を名乗るならジャップロリペド買春男どもの謝罪と賠償してこい [377482965]
- ニートしかいない時間ってマジでつまんないよな
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 千速は誰とのカップリングがエロいのか
- 高市コイン、155円突破wwwwwwwwww [246620176]
- おじゃる丸をまったり待機するスレ🏡
