前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1645239402/
探検
C++相談室 part160
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2022/04/15(金) 08:39:32.42ID:WMzvufu2978はちみつ餃子 ◆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を超えています。これ以上書き込みはできません。
ニュース
- 京都のホテル大幅値下げ 訪日中国人客、年1000万人目前で急ブレーキ ★2 [蚤の市★]
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★4 [ぐれ★]
- 「今の女性はルッキズム」は本当なのか? 若い世代が結婚相手に求める"本当の条件" [少考さん★]
- 【Uo・ェ・oU】行方不明の女子中学生を捜せ 枕のにおい頼りに10分で警察犬お手柄 神奈川県茅ケ崎市 [ぐれ★]
- 【サッカー】J1リーグの2025年平均観客動員数が4.4%増の21,246人 最多入場者数の2019年を超えて過去最高値 ★2 [尺アジ★]
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★5 [ぐれ★]
- 【悲報】安倍さん、発泡酒(の税率)がビールになったよ! [616817505]
- 【実況】博衣こよりのえちえちドラクエ1&2リメイク🧪★4
- 【朗報】舌をダランと力を抜いて喋ると、安倍晋三になるのであります。 [279951338]
- 住人の平均IQが低そうなネットコミュニティー [357264179]
- 鈴木農水大臣「原因はわからないけどおこめ券ボイコットが広がってます助けてください😭」 [931948549]
- 【実況】博衣こよりのえちえちドラクエ1&2リメイク🧪★3
