前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1645239402/
C++相談室 part160
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2022/04/15(金) 08:39:32.42ID:WMzvufu2917デフォルトの名無しさん
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あるやんけ(メジャーなコンパイラの拡張だけど
992デフォルトの名無しさん
2022/05/21(土) 16:47:52.13ID:x3bK44aY onlineも導入すべき
993デフォルトの名無しさん
2022/05/21(土) 17:00:45.58ID:+x02zxlN994ハノン ◆QZaw55cn4c
2022/05/21(土) 17:25:58.12ID:0jWT+RR4995はちみつ餃子 ◆8X2XSCHEME
2022/05/21(土) 17:56:26.14ID:JD6rd3hb >>994
inline というキーワードの選択が不自然なのはわかるが inline はインライン化の指示というよりは
インライン化に都合のよいように制限する指示と考えるとそんなに不自然でもない。
① C/C++ は翻訳単位ごとに個々にコンパイルしてからリンクする手順を取る
② 他のコンパイル単位にある定義の内容はわからんのでインライン化するためには翻訳単位の中に定義がある必要がある
③ ヘッダに関数定義を書きたい
④ ヘッダに定義を書くと ODR 違反やろ
⑤ じゃあ ODR の例外を設けよう。 inline って付けたら ODR の例外な!
inline というキーワードの選択が不自然なのはわかるが inline はインライン化の指示というよりは
インライン化に都合のよいように制限する指示と考えるとそんなに不自然でもない。
① C/C++ は翻訳単位ごとに個々にコンパイルしてからリンクする手順を取る
② 他のコンパイル単位にある定義の内容はわからんのでインライン化するためには翻訳単位の中に定義がある必要がある
③ ヘッダに関数定義を書きたい
④ ヘッダに定義を書くと ODR 違反やろ
⑤ じゃあ ODR の例外を設けよう。 inline って付けたら ODR の例外な!
996デフォルトの名無しさん
2022/05/21(土) 18:53:36.34ID:0jWT+RR4997はちみつ餃子 ◆8X2XSCHEME
2022/05/21(土) 19:24:52.72ID:JD6rd3hb >>996
外部に見せる用の実体のある定義は実際に用意される実装が多いと思う。
でも、その外部では実体を参照することは出来てもインライン化できないよね、各翻訳単位で定義が存在する必要があるよねということを言ってる。
その上で現在では LTO が普及したのでどうでもよくなったけど。
外部に見せる用の実体のある定義は実際に用意される実装が多いと思う。
でも、その外部では実体を参照することは出来てもインライン化できないよね、各翻訳単位で定義が存在する必要があるよねということを言ってる。
その上で現在では LTO が普及したのでどうでもよくなったけど。
998デフォルトの名無しさん
2022/05/21(土) 20:03:09.89ID:0jWT+RR4 >>997
なるほど、やっと理解しました
LTO: Link Time Optimization ですか‥‥、トラブルの元で胡散臭いと思っている私は古い人なんでしょうね‥‥、.obj がコンパイラ固有になるのも嫌ですし
なるほど、やっと理解しました
LTO: Link Time Optimization ですか‥‥、トラブルの元で胡散臭いと思っている私は古い人なんでしょうね‥‥、.obj がコンパイラ固有になるのも嫌ですし
999デフォルトの名無しさん
2022/05/21(土) 20:12:03.42ID:kYXfaM+5 海外の専門用語はわかりにくいのう
日本風にリンオプとか略してくれればいいのに
イニシャリズムみたいな言い方だとなんて言うんだろ
日本風にリンオプとか略してくれればいいのに
イニシャリズムみたいな言い方だとなんて言うんだろ
1000デフォルトの名無しさん
2022/05/21(土) 20:15:04.92ID:0jWT+RR4 >>999
村上龍の「5分後の世界」では、略語は使うな、ちゃんと元の言葉を使え、と教育されていますね
ジョージ・オーウェルの「1984」では、略語は謀略的な意味で使われる(小説末尾の appendix: New Speak 解説のカテゴリーB)ようですね
これらに影響されて、略語を連発するのは望ましくないという言語観を私は持っていますが
村上龍の「5分後の世界」では、略語は使うな、ちゃんと元の言葉を使え、と教育されていますね
ジョージ・オーウェルの「1984」では、略語は謀略的な意味で使われる(小説末尾の appendix: New Speak 解説のカテゴリーB)ようですね
これらに影響されて、略語を連発するのは望ましくないという言語観を私は持っていますが
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 36日 11時間 35分 33秒
新しいスレッドを立ててください。
life time: 36日 11時間 35分 33秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 自閉症が「んなっしょい」と連呼するお🏡
- 現役猟師・俳優 東出昌大が語る「クマはそんな危ないもんじゃない」
- 【悲報】大分市佐賀関の火事、20軒→170軒に延焼🔥 [481941988]
- 日本人の海外旅行したきのマナーよくなったのはいつから
- へそグリグリ
