前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1645239402/
探検
C++相談室 part160
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2022/04/15(金) 08:39:32.42ID:WMzvufu2892デフォルトの名無しさん
2022/05/18(水) 10:37:48.91ID:Q68htpiP /: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ ___
/;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、 / ヽ
/ヽヽ: ://: :!:,X~::|: /;,,;,/: :/ リ!: ::/ノ l`ヽl !: : |: : : :l: :l: リ / そ そ お \
/: : ヽヾ/: : l/::l |/|||llllヾ,、 / |: :/ , -==、 l\:::|: : : :|i: | / う う 前 |
. /: : : //ヾ ; :|!: イ、||ll|||||::|| ノノ イ|||||||ヾ、 |: ::|!: : イ: ::|/ な 思 が
/: : ://: : :ヽソ::ヽl |{ i||ll"ン ´ i| l|||l"l `|: /|: : /'!/l ん う
∠: : : ~: : : : : : : :丶ゝ-―- , ー=z_ソ |/ ハメ;, :: ::|. だ ん
i|::ハ: : : : : : : : : : : 、ヘヘヘヘ 、 ヘヘヘヘヘ /: : : : : \,|. ろ な
|!l |: : : : : : : : :、: ::\ 、-―-, / : : :丶;,,;,:ミヽ う ら
丶: :ハ、lヽ: :ヽ: : ::\__ `~ " /: : ト; lヽ) ゝ
レ `| `、l`、>=ニ´ , _´ : :} ` /
,,、r"^~´"''''"t-`r、 _ -、 ´ヽノ \ノ / お ・
,;'~ _r-- 、__ ~f、_>'、_ | で 前 ・
f~ ,;" ~"t___ ミ、 ^'t | は ん ・
," ,~ ヾ~'-、__ ミ_ξ丶 | な 中 ・
;' ,イ .. ヽ_ ヾ、0ヽ丶 l /
( ;":: |: :: .. .`, ヾ 丶 ! \____/
;;;; :: 入:: :: :: l`ー-、 )l ヾ 丶
"~、ソ:: :い:: : \_ ノ , ヾ 丶
/;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、 / ヽ
/ヽヽ: ://: :!:,X~::|: /;,,;,/: :/ リ!: ::/ノ l`ヽl !: : |: : : :l: :l: リ / そ そ お \
/: : ヽヾ/: : l/::l |/|||llllヾ,、 / |: :/ , -==、 l\:::|: : : :|i: | / う う 前 |
. /: : : //ヾ ; :|!: イ、||ll|||||::|| ノノ イ|||||||ヾ、 |: ::|!: : イ: ::|/ な 思 が
/: : ://: : :ヽソ::ヽl |{ i||ll"ン ´ i| l|||l"l `|: /|: : /'!/l ん う
∠: : : ~: : : : : : : :丶ゝ-―- , ー=z_ソ |/ ハメ;, :: ::|. だ ん
i|::ハ: : : : : : : : : : : 、ヘヘヘヘ 、 ヘヘヘヘヘ /: : : : : \,|. ろ な
|!l |: : : : : : : : :、: ::\ 、-―-, / : : :丶;,,;,:ミヽ う ら
丶: :ハ、lヽ: :ヽ: : ::\__ `~ " /: : ト; lヽ) ゝ
レ `| `、l`、>=ニ´ , _´ : :} ` /
,,、r"^~´"''''"t-`r、 _ -、 ´ヽノ \ノ / お ・
,;'~ _r-- 、__ ~f、_>'、_ | で 前 ・
f~ ,;" ~"t___ ミ、 ^'t | は ん ・
," ,~ ヾ~'-、__ ミ_ξ丶 | な 中 ・
;' ,イ .. ヽ_ ヾ、0ヽ丶 l /
( ;":: |: :: .. .`, ヾ 丶 ! \____/
;;;; :: 入:: :: :: l`ー-、 )l ヾ 丶
"~、ソ:: :い:: : \_ ノ , ヾ 丶
893デフォルトの名無しさん
2022/05/18(水) 11:04:38.59ID:spPNFpZE894デフォルトの名無しさん
2022/05/18(水) 11:07:21.81ID:OWcrFw6t いずれにせよオブジェクト指向を上回る手法が登場しない限りオブジェクト指向に対してマウントは取れない
895デフォルトの名無しさん
2022/05/18(水) 11:21:09.24ID:spPNFpZE 予めメモリプールを設定しておくようなOSで
オブジェクト指向ありきでプログラム設計されてると思ってんのはおめでてーな
馬鹿の一つ覚えとも言う
オブジェクト指向ありきでプログラム設計されてると思ってんのはおめでてーな
馬鹿の一つ覚えとも言う
896デフォルトの名無しさん
2022/05/18(水) 11:34:46.54ID:s0yud5Is プログラムがオブジェクト指向に則ってるか否かはOSで決定する、と
897デフォルトの名無しさん
2022/05/18(水) 11:41:08.84ID:spPNFpZE メモリプールを何の目的で用意するのかわかってないと
898はちみつ餃子 ◆8X2XSCHEME
2022/05/18(水) 12:02:56.59ID:bslzKqYb オブジェクトがメッセージを投げるという関係性でプログラムを構築するのが
オブジェクト指向ってもんだから、関数 (メンバ関数) をメッセージとみなすかもしれないし、
メッセージキューのようなものを作るかもしれない。
プログラミング言語の言語機能をどのようにプログラム構成の方法論に当てはめるかは自由度はある。
その意味では >>891 の考え方は真っ当なものだ。
でも、 C++ では C++ の常識というものもあるし、
ある程度は共通の認識を作っておかないと会話が成り立たんだろう。
基本的にはふんわりした概念でしかないからこの場合にオブジェクト指向
という言葉をどういう意味で使うことにするのかはこの場で擦りあわせろや。
オブジェクト指向ってもんだから、関数 (メンバ関数) をメッセージとみなすかもしれないし、
メッセージキューのようなものを作るかもしれない。
プログラミング言語の言語機能をどのようにプログラム構成の方法論に当てはめるかは自由度はある。
その意味では >>891 の考え方は真っ当なものだ。
でも、 C++ では C++ の常識というものもあるし、
ある程度は共通の認識を作っておかないと会話が成り立たんだろう。
基本的にはふんわりした概念でしかないからこの場合にオブジェクト指向
という言葉をどういう意味で使うことにするのかはこの場で擦りあわせろや。
899デフォルトの名無しさん
2022/05/18(水) 12:12:57.18ID:KNHGZhRF >>895
そもそもos全体がオブジェクト指向だなんて誰も言ってないし
そもそもos全体がオブジェクト指向だなんて誰も言ってないし
900デフォルトの名無しさん
2022/05/18(水) 12:22:21.26ID:CvWTVaQG901デフォルトの名無しさん
2022/05/18(水) 16:21:01.44ID:SnLFYw7t たしかにオブジェクト志向オブジェクト志向言いはじめたころは
「メッセージング」ってのがやたら強調されてたな
たぶんスモールトークの影響だろうけど
最近の「オブジェクト志向」はどっちかってとオブジェクトのかたまりを
どう型つけるか、階層化するかの言語構造のことを言いがちだけど
「メッセージング」ってのがやたら強調されてたな
たぶんスモールトークの影響だろうけど
最近の「オブジェクト志向」はどっちかってとオブジェクトのかたまりを
どう型つけるか、階層化するかの言語構造のことを言いがちだけど
902デフォルトの名無しさん
2022/05/18(水) 16:31:15.14ID:ZUGTejLE 指向だけどな
むしろメッセージングの重要性は高まってきてると思うけど、頭のいいひとにしか扱えない感じだな
馬鹿は階層にこだわるしかない
むしろメッセージングの重要性は高まってきてると思うけど、頭のいいひとにしか扱えない感じだな
馬鹿は階層にこだわるしかない
903デフォルトの名無しさん
2022/05/18(水) 20:03:09.30ID:9cdFfz37 オブジェクト指向で利点はデータモデルを表現できることだろ
それが言語上で構造体なのかクラスベースなのかアクターなのかは大きな問題じゃない
それが言語上で構造体なのかクラスベースなのかアクターなのかは大きな問題じゃない
904デフォルトの名無しさん
2022/05/18(水) 21:04:56.14ID:xACVFtZa ウィンドウに開けとか閉じれとか大きくなれとか指示してれば、それはもうオブジェクト指向なので、ウィンドウ・システムとオブジェクト指向はだいぶ相性が良い。
905デフォルトの名無しさん
2022/05/18(水) 21:06:39.10ID:AIFQ7kC9 >>891
hogehoge("ソポポポぉおおおおおん!");
↑これはオブジェクト指向で書いたプログラムです!!!!
って言ったらそういう解釈もありだなって思うの?
俺はオブジェクト指向アンチ!
絶対にオブジェクト指向なコードなんて書かね!といった直後に
const dialog = document.getElementById("dialog");
dialog.addEventListener("click", e =>{イベント処理});
みたいなコードを書いていたら、そのコードはオブジェクト指向ではないと解釈するの?
なわけないよね
hogehoge("ソポポポぉおおおおおん!");
↑これはオブジェクト指向で書いたプログラムです!!!!
って言ったらそういう解釈もありだなって思うの?
俺はオブジェクト指向アンチ!
絶対にオブジェクト指向なコードなんて書かね!といった直後に
const dialog = document.getElementById("dialog");
dialog.addEventListener("click", e =>{イベント処理});
みたいなコードを書いていたら、そのコードはオブジェクト指向ではないと解釈するの?
なわけないよね
906デフォルトの名無しさん
2022/05/18(水) 21:06:55.62ID:xACVFtZa とうとうアジュール・アカウントを作ってしまった。
907デフォルトの名無しさん
2022/05/18(水) 21:07:48.89ID:xACVFtZa よし。
今日からおれもアジュール民だ。
今日からおれもアジュール民だ。
908デフォルトの名無しさん
2022/05/18(水) 21:23:10.53ID:vRsLqKZH ようこそクラウドの世界へ
909デフォルトの名無しさん
2022/05/18(水) 21:48:35.12ID:I2H5iqao910デフォルトの名無しさん
2022/05/18(水) 22:00:38.20ID:AIFQ7kC9911蟻人間 ◆T6xkBnTXz7B0
2022/05/18(水) 22:04:01.32ID:1ADDPTHW struct HogeHoge {
void operator(const char *str) const {
std::cout << str;
}
};
HogeHoge hogehoge;
void operator(const char *str) const {
std::cout << str;
}
};
HogeHoge hogehoge;
912デフォルトの名無しさん
2022/05/18(水) 22:04:44.03ID:vRsLqKZH914デフォルトの名無しさん
2022/05/18(水) 22:09:27.02ID:V03o9uZn プログラムを書いた人がオブジェクト指向設計ですと言っているものまでオブジ
ェクト指向ではないと否定するのは愚策言ったが最後、ではオブジェクト指向で
はない何なのかを述べねばならなくなるからなgoto否定論者にbreakは実質goto
とかあまつさえgotoを使ったプログラムを書いてgoto否定論者に対して正当性を
主張した場合に生じる惨状と同じで社会スキル的な意味で避けるべき理由が十分あ
る
ェクト指向ではないと否定するのは愚策言ったが最後、ではオブジェクト指向で
はない何なのかを述べねばならなくなるからなgoto否定論者にbreakは実質goto
とかあまつさえgotoを使ったプログラムを書いてgoto否定論者に対して正当性を
主張した場合に生じる惨状と同じで社会スキル的な意味で避けるべき理由が十分あ
る
915デフォルトの名無しさん
2022/05/18(水) 22:09:33.95ID:spPNFpZE >>900
オブジェクト指向もどき が オブジェクト指向でないのは
くじら が さかな で無いのと同じだ
馬鹿は知らないくじら構文
そして、応用系
オブジェクト指向もどき が オブジェクト指向でないのは
ヒトもどきのお前 が ヒトでないのと同じだ
オブジェクト指向もどき が オブジェクト指向でないのは
くじら が さかな で無いのと同じだ
馬鹿は知らないくじら構文
そして、応用系
オブジェクト指向もどき が オブジェクト指向でないのは
ヒトもどきのお前 が ヒトでないのと同じだ
916デフォルトの名無しさん
2022/05/18(水) 22:11:26.32ID:PU9JUd8R C++の話しようぜ
917デフォルトの名無しさん
2022/05/18(水) 22:13:31.75ID:ZUGTejLE c++スレでオブジェクト指向の話をするのは無理がある
918デフォルトの名無しさん
2022/05/18(水) 23:15:16.60ID:xACVFtZa C++のオブジェクト指向全盛期は20年以上前だからね。
その後は黒魔術全盛期がやってきた。
その後は黒魔術全盛期がやってきた。
919デフォルトの名無しさん
2022/05/18(水) 23:37:02.53ID:PYepqFJi Andrei Alexandrescuが悪い
920デフォルトの名無しさん
2022/05/19(木) 00:10:17.97ID:JEoDteVp 組み込みC++だと普通にオブジェクト指向全盛期だけどな
uart1.write(data);
のような記述が当たり前になってきて有難い
uart1.write(data);
のような記述が当たり前になってきて有難い
921デフォルトの名無しさん
2022/05/19(木) 02:53:53.60ID:m2mVV8oP 組み込みってマクロ大好きだからオブジェクト指向の書き方と相性悪いと思ってたけど最近はそうでもないの?
それともそう描いたときのuart1やwriteもマクロなの?
それともそう描いたときのuart1やwriteもマクロなの?
922デフォルトの名無しさん
2022/05/19(木) 03:00:29.40ID:tMeCiyz0 そら組み込みっていってもいろんなレイヤがあるからね
923デフォルトの名無しさん
2022/05/19(木) 05:20:52.31ID:UJCwwVid >>910
fprintf(stdout, "そぼぼん");
みたいになってることもあるからな
obj.func(...);という構文は絶対条件じゃないんだよ
PostMessage(hWnd, WM_APP, 0, 0);なんてのだってオブジェクト指向だし
fprintf(stdout, "そぼぼん");
みたいになってることもあるからな
obj.func(...);という構文は絶対条件じゃないんだよ
PostMessage(hWnd, WM_APP, 0, 0);なんてのだってオブジェクト指向だし
924デフォルトの名無しさん
2022/05/19(木) 07:43:27.80ID:bqW40Z5X 組み込みはまだまだCが主流
925デフォルトの名無しさん
2022/05/19(木) 07:46:20.72ID:ijZ+Z+2A926デフォルトの名無しさん
2022/05/19(木) 07:47:19.60ID:Kexh9zXI >>923
そう、Cの時代からオブジェクト指向はあったよな
そう、Cの時代からオブジェクト指向はあったよな
927デフォルトの名無しさん
2022/05/19(木) 07:50:32.12ID:sZfr5xXW 別に
objに対してfunc()というメッセージを送るのと、
PostMessage()という手続きにhWndを渡すのでは意味が違う
obj.func()をコンパイルしたらfunc(ptr, ...)とptrとして&objを渡すコード、みたいなものになるではないか、というのはそれはそうだが
そいつは意味を捨てているからにすぎないことは統語論的に考えたらワカル
例: getter
x = obj.getX(); // I get the value X となるようにobjに仕事させよという意味(CPUにobjを使役するよう命令している
x = getX(&obj); // get the value X from (/ by / with / in) the object obj、という意味(CPUにやれと命令している
objに対してfunc()というメッセージを送るのと、
PostMessage()という手続きにhWndを渡すのでは意味が違う
obj.func()をコンパイルしたらfunc(ptr, ...)とptrとして&objを渡すコード、みたいなものになるではないか、というのはそれはそうだが
そいつは意味を捨てているからにすぎないことは統語論的に考えたらワカル
例: getter
x = obj.getX(); // I get the value X となるようにobjに仕事させよという意味(CPUにobjを使役するよう命令している
x = getX(&obj); // get the value X from (/ by / with / in) the object obj、という意味(CPUにやれと命令している
928デフォルトの名無しさん
2022/05/19(木) 07:51:01.05ID:sZfr5xXW 言ってて自信なくなってきたがとにかく違う、
929デフォルトの名無しさん
2022/05/19(木) 07:55:55.82ID:bqW40Z5X オブジェクト指向って
単にクラス関数を呼んだからオブジェクト指向
とかいう単純な物じゃない
プログラムやモジュールの設計思想の話
単にクラス関数を呼んだからオブジェクト指向
とかいう単純な物じゃない
プログラムやモジュールの設計思想の話
930デフォルトの名無しさん
2022/05/19(木) 08:02:53.54ID:tMeCiyz0 >>927
お前がそうやって理解したのは理解するけど、ちょっとどうかなあ
お前がそうやって理解したのは理解するけど、ちょっとどうかなあ
931デフォルトの名無しさん
2022/05/19(木) 08:10:11.10ID:Bak+CTg/ >>915
その主張において
・「ヒトもどき」と「ヒト」の違いは何か。「ヒトもどき」が「ヒト」でないとする根拠は何か。
・「ヒトもどき」の「もどき」の意味が「指向もどき」の「もどき」の意味と同じとする根拠は何か。
間違った根拠と間違った推論から導いた結論に意味はないから、上記に答えられないならその主張に議論する価値は無い。
論理をかじって知ったかぶりしたくなるのもわかるけど、もうちょっと勉強した方がいいよ。
その主張において
・「ヒトもどき」と「ヒト」の違いは何か。「ヒトもどき」が「ヒト」でないとする根拠は何か。
・「ヒトもどき」の「もどき」の意味が「指向もどき」の「もどき」の意味と同じとする根拠は何か。
間違った根拠と間違った推論から導いた結論に意味はないから、上記に答えられないならその主張に議論する価値は無い。
論理をかじって知ったかぶりしたくなるのもわかるけど、もうちょっと勉強した方がいいよ。
932デフォルトの名無しさん
2022/05/19(木) 08:12:35.09ID:bqW40Z5X C++関係ないんだから
他にスレ立ててやれ
他にスレ立ててやれ
933デフォルトの名無しさん
2022/05/19(木) 08:26:56.26ID:nDeBFAzg オブジェクト指向を教えてくれ!★2
https://mevius.5ch.net/test/read.cgi/tech/1619503348/
https://mevius.5ch.net/test/read.cgi/tech/1619503348/
934デフォルトの名無しさん
2022/05/19(木) 08:30:35.34ID:sZfr5xXW935デフォルトの名無しさん
2022/05/19(木) 09:28:38.04ID:XCQrD9i4 objっていうデータ構造体からxを取得するからgetXって解釈してたわ
936デフォルトの名無しさん
2022/05/19(木) 09:37:01.76ID:HFWBeLeA オブジェクト指向って obj.method( ) という構文だけの話じゃないでしょ
継承・多態性・オーバーライド・オーバーロード・オーラロードなどの機能もオブジェクト指向の重要な要素じゃないの
あと機能とは別にカプセル化などオブジェクト指向で周知された設計手法もある(これはオブジェクト指向でなくてもできるけど)
継承・多態性・オーバーライド・オーバーロード・オーラロードなどの機能もオブジェクト指向の重要な要素じゃないの
あと機能とは別にカプセル化などオブジェクト指向で周知された設計手法もある(これはオブジェクト指向でなくてもできるけど)
937デフォルトの名無しさん
2022/05/19(木) 09:42:48.48ID:tMeCiyz0938デフォルトの名無しさん
2022/05/19(木) 09:56:27.95ID:qAaVAzHk hogehoge書いた本人はたぶんそこまで考えていないよ
それこそ思い込みが激しいでは?
それこそ思い込みが激しいでは?
939デフォルトの名無しさん
2022/05/19(木) 12:33:57.63ID:Nz/+UK9H >>934
オブジェクト指向の「オブジェクト」は、主体・客体の「客体」として解釈するといい。主体はプログラマーとかCPUとかの指示・命令をする主体。
オブジェクト指向の「オブジェクト」は、主体・客体の「客体」として解釈するといい。主体はプログラマーとかCPUとかの指示・命令をする主体。
940デフォルトの名無しさん
2022/05/19(木) 12:47:07.52ID:JltPZRp+ まだやるの?
941デフォルトの名無しさん
2022/05/19(木) 12:58:56.65ID:NIcGv5m1942デフォルトの名無しさん
2022/05/19(木) 13:04:29.79ID:B0nB5mTs943デフォルトの名無しさん
2022/05/19(木) 13:06:45.60ID:YUgVG0pp944デフォルトの名無しさん
2022/05/19(木) 13:18:40.04ID:B0nB5mTs945デフォルトの名無しさん
2022/05/19(木) 13:20:01.49ID:z4apOfvE 何言ってんだこいつ
オブジェクト指向を知ってるからって偉そうにしやがって
オブジェクト指向を知ってるからって偉そうにしやがって
946デフォルトの名無しさん
2022/05/19(木) 13:52:35.01ID:gDUMsWXi947デフォルトの名無しさん
2022/05/19(木) 16:31:30.66ID:QDwYarvc948デフォルトの名無しさん
2022/05/19(木) 16:36:02.58ID:QDwYarvc949デフォルトの名無しさん
2022/05/19(木) 17:36:19.36ID:6RgATOKw アホだからアホでも使えるように構造化するのを大事にしてる
950デフォルトの名無しさん
2022/05/19(木) 18:44:20.43ID:XmlfPc2y 802から始まって、いまだ発散してるから
線引含めてめんどくせぇ話だなというのはわかる
線引含めてめんどくせぇ話だなというのはわかる
951デフォルトの名無しさん
2022/05/19(木) 18:46:23.64ID:2O7Wjx2k VIPでやれと言われるような話題。
952デフォルトの名無しさん
2022/05/19(木) 19:01:16.29ID:jm7Yx9uZ >>949
想定以外の使い方は許さない方が無難かね。Conceptsが普及すればc++でも制約プログラミング流行るかな。
想定以外の使い方は許さない方が無難かね。Conceptsが普及すればc++でも制約プログラミング流行るかな。
953デフォルトの名無しさん
2022/05/20(金) 06:26:48.33ID:QdnN/13A プログラムの可読性は大事だが
それをアホへの迎合と勘違いしてはいけない
COBOLからの教訓だ
それをアホへの迎合と勘違いしてはいけない
COBOLからの教訓だ
954デフォルトの名無しさん
2022/05/20(金) 06:48:44.29ID:jg8JP3/X 可読性とは結局
自分ルールに添ってるか
自分と同レベルの知識や頭脳か
になるからねえ
自分ルールに添ってるか
自分と同レベルの知識や頭脳か
になるからねえ
955デフォルトの名無しさん
2022/05/20(金) 08:17:00.86ID:biGldfGz >>939
>オブジェクト指向の「オブジェクト」は、主体・客体の「客体」として解釈するといい。
どういうこっちゃ……
オブジェクトを客体とみなすルールは必ずしもその客体が主体的に動くシチュエーションの禁止にはならない
客体が主体的に動くシチュエーションを禁止したかったら、複文の禁止までルールを推し進めねばならん
例:
進駐軍の兵隊オブジェクトに「Get chocolate」と言ったらそのオブジェクトがチョコレートの調達に走るのが妥当
この場合進駐軍の兵隊オブジェクトが主体的に動く(倉庫等に取りに行く)ことが気体される
進駐軍の兵隊オブジェクトに「Give me chocolate」と言って初めて発令の主体たるCPUがチョコレートを受け取れる
>オブジェクト指向の「オブジェクト」は、主体・客体の「客体」として解釈するといい。
どういうこっちゃ……
オブジェクトを客体とみなすルールは必ずしもその客体が主体的に動くシチュエーションの禁止にはならない
客体が主体的に動くシチュエーションを禁止したかったら、複文の禁止までルールを推し進めねばならん
例:
進駐軍の兵隊オブジェクトに「Get chocolate」と言ったらそのオブジェクトがチョコレートの調達に走るのが妥当
この場合進駐軍の兵隊オブジェクトが主体的に動く(倉庫等に取りに行く)ことが気体される
進駐軍の兵隊オブジェクトに「Give me chocolate」と言って初めて発令の主体たるCPUがチョコレートを受け取れる
956デフォルトの名無しさん
2022/05/20(金) 08:26:59.91ID:biGldfGz どっちにせよチョコを取りに行ったりくれたりする主体は進駐軍の兵隊オブジェクト
さらに進駐軍の兵隊オブジェクトが倉庫の受付に「Get chocolate」言うかもしれんし
そうすると進駐軍の兵隊オブジェクトがチョコレートを受け取る主体にもなり得る
こういう入り組んだ解釈を一切禁止ということならやっぱ複文禁止しか……
それはそれで新しいプログラミングパラダイムが拓けそうやがどうかなあ……
さらに進駐軍の兵隊オブジェクトが倉庫の受付に「Get chocolate」言うかもしれんし
そうすると進駐軍の兵隊オブジェクトがチョコレートを受け取る主体にもなり得る
こういう入り組んだ解釈を一切禁止ということならやっぱ複文禁止しか……
それはそれで新しいプログラミングパラダイムが拓けそうやがどうかなあ……
957デフォルトの名無しさん
2022/05/20(金) 08:31:45.87ID:biGldfGz ていうかそういうのはどうでも良いんですよそれよか>>695
のコードについて質問なのですが
fouri()の中に
sin1 = table[t0];
cos1 = table[t1];
というのがあって、cos1 + i * sin1が1の原子2^N乗根だと思うじゃん?
しかし動きを見ると5.333333乗根とか(これはまだわからないでもない
4.571429乗根とかわけわかんない数値が入って来るんですがなんで?!
ボスケテ、
のコードについて質問なのですが
fouri()の中に
sin1 = table[t0];
cos1 = table[t1];
というのがあって、cos1 + i * sin1が1の原子2^N乗根だと思うじゃん?
しかし動きを見ると5.333333乗根とか(これはまだわからないでもない
4.571429乗根とかわけわかんない数値が入って来るんですがなんで?!
ボスケテ、
958デフォルトの名無しさん
2022/05/20(金) 08:42:58.01ID:1bxUvska959デフォルトの名無しさん
2022/05/20(金) 19:33:47.78ID:0DaneQt4__ __ ___ _____ _____ ___ ___ ___
| | / / | // | /__ __/ [][] _| |_| |__ _| |_
| |. / / / / / / ̄ ̄|. l / / | _ | |_ レ'~ ̄|
| | / / / / / /. / / | |___  ̄| | / / / /| |
| | / / / / /  ̄ ̄ / \__| | |  ̄ /_ / | |_
| |. / / / / / / ̄ ̄ ̄ |_| |__| \/
| |/ / / /. / /
|. / / / / /
| /. / | ./ /
 ̄ ̄ ̄  ̄ ̄ ̄.  ̄ ̄
960デフォルトの名無しさん
2022/05/20(金) 20:11:14.93ID:biGldfGz >>958
1<<i乗根は結局2^i乗根ということで、
(2*M_PI)/atan2(sin1, cos1)が2^iすわなち整数にならないとおかしいんじゃないの
しかし実際は16乗根とか64乗根に交じって5.333333乗根とか4.571429乗根とかが混じってくるのでつ∀`;)
1<<i乗根は結局2^i乗根ということで、
(2*M_PI)/atan2(sin1, cos1)が2^iすわなち整数にならないとおかしいんじゃないの
しかし実際は16乗根とか64乗根に交じって5.333333乗根とか4.571429乗根とかが混じってくるのでつ∀`;)
961デフォルトの名無しさん
2022/05/20(金) 21:44:19.34ID:jg8JP3/X そりゃ(1<<i)乗根をn乗してるからねえ
出てくるんじゃないの?
何か問題?
出てくるんじゃないの?
何か問題?
962デフォルトの名無しさん
2022/05/20(金) 23:00:09.02ID:biGldfGz わかりた
(1 << i)/jが割り切れない場合のw^jかorz
(1 << i)/jが割り切れない場合のw^jかorz
963デフォルトの名無しさん
2022/05/20(金) 23:24:07.63ID:mAopBTqL マクロでしか実現できない機能って何がありますか?
派遣先のライブラリがマクロだらけで驚いたので気になりました
派遣先のライブラリがマクロだらけで驚いたので気になりました
964デフォルトの名無しさん
2022/05/20(金) 23:38:17.88ID:Nu0nVGPY メタプログラミングとか?
965デフォルトの名無しさん
2022/05/20(金) 23:48:21.44ID:5lKx3hyB いろいろあると思うけど、ログ関数とか作るときに関数名とか行数とか出力させたかったらマクロ使うかな
966デフォルトの名無しさん
2022/05/20(金) 23:53:08.67ID:sn/66v3t 行数とかなんか無茶なコードの結合とか
967デフォルトの名無しさん
2022/05/21(土) 00:17:23.34ID:SL+9c0t4 コンパイラによってつける属性変えるときとか
public:をオンオフしたり構文に影響を与えるものとか
MSVCの標準ライブラリ覗くと
#define _CONSTEXPR20 constexpr
//#define _CONSTEXPR20 inline //C++17以前
とか書いてあったりする
式を文字列として展開するのもマクロじゃなきゃできない
#define A(exp) #exp
文字列連結(#define A(a1,a2) a1##a2)もマクロじゃなきゃできないけどデバッグが無理ゲーになるから使わん
public:をオンオフしたり構文に影響を与えるものとか
MSVCの標準ライブラリ覗くと
#define _CONSTEXPR20 constexpr
//#define _CONSTEXPR20 inline //C++17以前
とか書いてあったりする
式を文字列として展開するのもマクロじゃなきゃできない
#define A(exp) #exp
文字列連結(#define A(a1,a2) a1##a2)もマクロじゃなきゃできないけどデバッグが無理ゲーになるから使わん
968デフォルトの名無しさん
2022/05/21(土) 00:19:10.39ID:DcWHGr0j __FILE__や__LINE__を使うのを隠蔽したいときはマクロにするしか、
あと文字列を結合してシンボルを合成するとか、
#define cat(a, b) a##b
#define cat2(a, b) a/**/b
あと文字列を結合してシンボルを合成するとか、
#define cat(a, b) a##b
#define cat2(a, b) a/**/b
969デフォルトの名無しさん
2022/05/21(土) 00:53:48.99ID:SKvcmC+r マクロでぐにゃぐにゃしてる中はデバッガで止めづらくなるね
文字列生成(そして文字列の連結) 識別子の連結 はプリプロセッサじゃないとできないし
文字列生成(そして文字列の連結) 識別子の連結 はプリプロセッサじゃないとできないし
970デフォルトの名無しさん
2022/05/21(土) 01:31:55.43ID:wrIep829 初見殺しにマクロは必須
971ハノン ◆QZaw55cn4c
2022/05/21(土) 06:57:00.43ID:0jWT+RR4 というか、inline 指定を絶対化すればいいだけ
どうして inline 指定してもインラインされない場合がある、とか勝手なことをするのか不明
どうして inline 指定してもインラインされない場合がある、とか勝手なことをするのか不明
972デフォルトの名無しさん
2022/05/21(土) 07:00:24.57ID:LKZ4AMgL #define AAAA xxxx
#include "****"
#undef AAAA
#define AAAA yyyy
#include "****"
#undef AAAA
#include "****"
#undef AAAA
#define AAAA yyyy
#include "****"
#undef AAAA
973デフォルトの名無しさん
2022/05/21(土) 07:11:17.89ID:DcWHGr0j974デフォルトの名無しさん
2022/05/21(土) 08:09:54.00ID:0jWT+RR4 >>973
閾値を決めて閾値を超えてとまらないことがわかったら「エラーを出してコンパイルを止める」べきで、勝手に inline を無視してコンパイルしなおすなんて言語道断、コンパイラ作者の独善だね
閾値を決めて閾値を超えてとまらないことがわかったら「エラーを出してコンパイルを止める」べきで、勝手に inline を無視してコンパイルしなおすなんて言語道断、コンパイラ作者の独善だね
975デフォルトの名無しさん
2022/05/21(土) 08:21:34.76ID:/PQRaHnB 今やregisterなみの存在感
976デフォルトの名無しさん
2022/05/21(土) 10:25:33.17ID:qJClzxWq #includeと#defineで疑似メタプログラミング的なことをすることはある
テンプレート化出来ない場合もあるからな
テンプレート化出来ない場合もあるからな
977デフォルトの名無しさん
2022/05/21(土) 10:48:13.19ID:Kirg9sMV constexprが中途半端で結局constevalが追加されたのに倣えば、inlineの強制バージョンも標準化していいはずだよな
既に独自実装のalways_inlineや__forceinlineはあるんだし
既に独自実装のalways_inlineや__forceinlineはあるんだし
978はちみつ餃子 ◆8X2XSCHEME
2022/05/21(土) 11:13:07.39ID:JD6rd3hb C++ は見かけ上の動作が仕様通りならどういう機械語を生成するか規定しないのが原則だから……。
言語仕様的には constexpr やら consteval も定数式として使える範囲を拡大しただけで、生成される機械語に対しては要求をしてない。
(想定はしていると思うけど。)
言語仕様的には constexpr やら consteval も定数式として使える範囲を拡大しただけで、生成される機械語に対しては要求をしてない。
(想定はしていると思うけど。)
979デフォルトの名無しさん
2022/05/21(土) 11:49:29.76ID:DcWHGr0j 翻訳系の仕事はソースコードの意味を変えずにオブジェクトコードに翻訳することで(ry
狭義のアルゴリズム(シングルスレッド条件、有限ステップで結果出力)の入力と出力の関係が翻訳前後で同じ結果になるならおk
最適化はボランティア活動みたいなもん
だいたいコルモゴロフ複雑性的な意味で一意な解など一般に無いし
狭義のアルゴリズム(シングルスレッド条件、有限ステップで結果出力)の入力と出力の関係が翻訳前後で同じ結果になるならおk
最適化はボランティア活動みたいなもん
だいたいコルモゴロフ複雑性的な意味で一意な解など一般に無いし
980デフォルトの名無しさん
2022/05/21(土) 12:00:28.50ID:DcWHGr0j ていうかDFTと逆DFTおよび4n乗根のDFTと逆DFTができましたよ
https://ideone.com/uK9v58
n語のフーリエ変換にメモリを2n語使って良いなら話は簡単やが
>>695 のソースコードはn語で済ませているから黒魔術を駆使しているに違いない
>>695 の作者は漏れよか頭良すぎ(いやいい意味で、
https://ideone.com/uK9v58
n語のフーリエ変換にメモリを2n語使って良いなら話は簡単やが
>>695 のソースコードはn語で済ませているから黒魔術を駆使しているに違いない
>>695 の作者は漏れよか頭良すぎ(いやいい意味で、
981ハノン ◆QZaw55cn4c
2022/05/21(土) 14:44:04.21ID:0jWT+RR4982デフォルトの名無しさん
2022/05/21(土) 14:47:32.33ID:is6KmnjI あくまでもヒントじゃないのか
983デフォルトの名無しさん
2022/05/21(土) 15:01:05.79ID:0jWT+RR4 >>982
そんな曖昧な態度だから、マクロによるインラインが跋扈してしまうんです、inline に限っては強制力を伴うべきでしょう、#define マクロを葬り去りたいのなら
そんな曖昧な態度だから、マクロによるインラインが跋扈してしまうんです、inline に限っては強制力を伴うべきでしょう、#define マクロを葬り去りたいのなら
984デフォルトの名無しさん
2022/05/21(土) 15:01:21.03ID:OwY6A3+8 そう
あくまでヒント
ヒントになった理由は
世の中のプログラマーがアホだから
あくまでヒント
ヒントになった理由は
世の中のプログラマーがアホだから
985デフォルトの名無しさん
2022/05/21(土) 15:01:54.43ID:OwY6A3+8 #defineは永遠に不滅です
986デフォルトの名無しさん
2022/05/21(土) 15:23:50.89ID:ocVGFLUP CRTPにするとインターフェース継承してもインライン展開されるのほんとまじ意味わからん
987デフォルトの名無しさん
2022/05/21(土) 15:35:03.49ID:0jWT+RR4 >>984
マクロ跋扈とを許す設計者の方がもっとアホですね
マクロ跋扈とを許す設計者の方がもっとアホですね
988デフォルトの名無しさん
2022/05/21(土) 15:39:45.82ID:LSoM7sSc 誰の方がアホとかどうでもよくて
アホだからそういう仕様になった
アホだからそういう仕様になった
989デフォルトの名無しさん
2022/05/21(土) 16:03:58.87ID:DcWHGr0j ちと別件に取り掛かったのでソースコードを見ながらではなく想像やが
>>695 のソースコードでやっている頻繁なswapの意図がわかった希ガス
X(k) = Σ[j=0..n-1]{ x(j) * w^(j*k) }
を計算するとき項の足し合わせ順序はどうでも良く、かつk>1なら
j * k = 0 (mod n) --- (1)
となるx(j) * w^(j*k)が複数回現れるから、(1)を満たす項の出現回数が大きいものを最初に足し合わせたらたちまち
(出現回数)-1語 のメモリが空く、というのが基本的着想で、
これを異なるkについて繰り返し行う場合(1)を満たす最大の出現回数となるjの系列jはk毎に相違するから、
kについての繰り返しについても部分計算を片付けてメモリを空けつつ進められ、
結局jとkの2重ループについてメモリを空けつつつつがなく進められるというしくみ(多分
>>695 のソースコードでやっている頻繁なswapの意図がわかった希ガス
X(k) = Σ[j=0..n-1]{ x(j) * w^(j*k) }
を計算するとき項の足し合わせ順序はどうでも良く、かつk>1なら
j * k = 0 (mod n) --- (1)
となるx(j) * w^(j*k)が複数回現れるから、(1)を満たす項の出現回数が大きいものを最初に足し合わせたらたちまち
(出現回数)-1語 のメモリが空く、というのが基本的着想で、
これを異なるkについて繰り返し行う場合(1)を満たす最大の出現回数となるjの系列jはk毎に相違するから、
kについての繰り返しについても部分計算を片付けてメモリを空けつつ進められ、
結局jとkの2重ループについてメモリを空けつつつつがなく進められるというしくみ(多分
990はちみつ餃子 ◆8X2XSCHEME
2022/05/21(土) 16:11:12.45ID:JD6rd3hb >>981
inline は ODR の例外。 また、異なる翻訳単位の同じ定義が統合されることを保証する。
これは C++98 のときからそう。
インライン化が望ましいことの指示であるとは書いてあるけど、
今では変数にも inline を付けることが出来るようになったのはもはや inline は ODR の例外としての意味がメインだと考えるべき。
inline は ODR の例外。 また、異なる翻訳単位の同じ定義が統合されることを保証する。
これは C++98 のときからそう。
インライン化が望ましいことの指示であるとは書いてあるけど、
今では変数にも inline を付けることが出来るようになったのはもはや inline は ODR の例外としての意味がメインだと考えるべき。
991デフォルトの名無しさん
2022/05/21(土) 16:29:48.48ID:9lV47uLv >>981
展開を強制したいならforceinlineあるやんけ(メジャーなコンパイラの拡張だけど
展開を強制したいならforceinlineあるやんけ(メジャーなコンパイラの拡張だけど
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 急に真冬かよ!!!⛄❄✨
- 地球から無限km先の場所ってどうなっているの?
- お前らインターネット大規模障害起きてたとき何してた
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- 日本、高市のお陰で破滅に近づくwwwwwwww
