C++相談室 part144

■ このスレッドは過去ログ倉庫に格納されています
2019/07/22(月) 13:18:35.52ID:gptRHpgT
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part143
https://mevius.5ch.net/test/read.cgi/tech/1560574313/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1556142878/

■長いソースを貼るときはここへ。■
 http://codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)

----- テンプレ ここまで -----
2019/08/18(日) 17:11:35.03ID:ToM84NKx
>>517
横からすまんが意味はわかる
c++はコンパイル時になんでもかんでも解決しようと必死すぎ
フェーズ分けてbinutils使いこなした方が素直と思うことが多々ある
2019/08/18(日) 18:18:09.60ID:1zrPBBLI
>>525
binutilsを使う例として、具体的にはどういうことがありますか?
2019/08/18(日) 18:19:29.10ID:XCKtcmfj
なんなんだろうなこの「俺に手取り足取り教えろ」みたいな要求は。
2019/08/18(日) 18:30:04.45ID:J+MNWXO/
お前には聞いてないから気にしなくていいぞ
529520
垢版 |
2019/08/18(日) 19:26:20.54ID:wYOmB27V
>>525
ますます意味わからんw
2019/08/18(日) 19:34:00.82ID:OLPPr8ZD
変なの居るなw
2019/08/18(日) 19:35:39.45ID:ToM84NKx
スキル不足なのに見下してるやつに教えてやる義理はないんだよね
逃げますね
2019/08/18(日) 19:40:22.27ID:l1trUFc3
私はneson/ninjaがおぬぬめ🌱
2019/08/18(日) 22:23:44.93ID:JoepZ2Id
>>525
国際標準になってないbinutilsなんて使ったら、環境依存でコンパイル通らなくなったりする。
2019/08/19(月) 03:39:22.51ID:uhqBoit2
VC++2017で std::string str = "abcd";ってやると
debugモードだとビルドできてるのに
ReleaseモードだとLNK2001エラーが出てしまいます

他に何か宣言かlibがいるのでしょうか
昨日一日この点で一日悪戦苦闘していました

ちなみにプロジェクトはコンソールアプリで
リンカーのシステムは処理の都合上、Windows(/SUBSYSTEM:WINDOWS)にしてあります
2019/08/19(月) 06:43:15.57ID:tEbkN2rV
プロジェクトの構成変更したときにDebug版だけ変えたとかじゃねえの
2019/08/19(月) 06:56:44.40ID:bPMhHkYv
>>524
遅レススマンが、知っている単語を並べてみただけなので
全く
わかり
ません
537デフォルトの名無しさん
垢版 |
2019/08/19(月) 07:12:08.46ID:p1963chb
>ファイルがあるだけで勝手にヘッダファイルの依存関係を解決

俺はこれカスタムして使ってます
https://postd.cc/makefile-c-projects/
2019/08/19(月) 09:00:35.28ID:uhqBoit2
>>535
いつの間にかReleaseの方ばかり設定いじるというアホなことやらかしてました。
プロジェクトを作り直してソースをコピーすることで解決しました。
2019/08/19(月) 09:12:20.21ID:uhqBoit2
VC++2017でコンソールアプリとしてプロジェクトを立ち上げました。
しかし、コンソール(dos窓)を非表示にするべく
構成プロパティのリンカー→システム→サブシステムを
Windows(/SUBSYSTEM:WINDOWS)にしてwindows.hをincludeして
int main(void)からint WINAPI WinMain(void)に変更してビルドすると
「C2731 'WinMain':関数はオーバーロードできません」と言われました。

構成プロパティのリンカー→詳細設定→エントリ ポイントをmainにしてビルドしても
結果は変わらず、int main(void)に戻すと大量にエラーが発生しました。

この場合、どうすればよろしいのでしょう?
2019/08/19(月) 09:16:19.09ID:dFJ5NqVw
WinMainのシグネチャが違う
2019/08/19(月) 09:16:37.96ID:pYNmdJ6B
>>539
エラーメッセージにしたがって修正すればよろしいですよ。
2019/08/19(月) 09:37:33.04ID:rfX59j2s
>>539
なぜ手でsubsystem変えようとしてんの?
VSのテンプレートそのまま使えばいいじゃん
それができないならその理由を説明すべき
2019/08/19(月) 09:40:50.85ID:uhqBoit2
>>540-541
ありがとうございます。
以前ググって見つけたものをだまされたと思って
int WINAPI WinMain(void)から
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char* lpCmdLine, int nCmdShow)に
変更したらReleaseモードでも上手くいきました。
でも、元が(void)なんで、引数の設定に釈然としないところありますが…
2019/08/19(月) 09:43:45.91ID:uhqBoit2
>>542
普通にやったらどうしても大きなdos窓がしばらく現れるので
(処理の都合上system関数からのexe実行が必要だからです)
ググって調べたらそういう風にいじれと書いてあったからです。
2019/08/19(月) 10:35:27.56ID:bcOlNC6N
boostなしで128ビット複素数を使う最もシンプルな方法ってなんですか?
2019/08/19(月) 13:02:54.66ID:Bn3yVmZh
complex<__int128_t>
2019/08/19(月) 15:12:55.94ID:bov4igyL
>>546
c++における4倍精度三角関数の呼び方が分かりません
cosq()とかsinq()のことです
2019/08/19(月) 15:33:17.41ID:Kz64oJjl
複素数関係ないじゃん…
2019/08/19(月) 15:36:02.76ID:5pda5jNo
コスキュー、シンキューじゃあかんの?

コサインクアドラント、サインクアドラント
2019/08/19(月) 21:07:56.83ID:thJnfNrr
4倍精度ライブラリでまともな速度出るものってないのでは。
2019/08/19(月) 21:14:48.68ID:78Wz1qhX
template+constexpr => これ最強!!!
2019/08/19(月) 21:20:16.93ID:uC0UGtuo
C++20でようやく使っても良いかな程度
2019/08/19(月) 21:23:04.43ID:78Wz1qhX
unifyde call syntax => 邪道。

でも、欲しいのである。
関数型食えると思うんだけどなー。
2019/08/19(月) 23:23:04.65ID:ZU65OOaB
バイトデータの比較を高速に行いたいのですが、以下@Aを考えました。
連続したバイトデータを比較するのに下記以外に簡素に書ける方法はありませんか?
memcpyはコピーが発生するのでちょっと遅くなるかなと思っています。

int main(){
unsigned char byte[6] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };
// @1バイトずつ比較
if( byte[2] == 0x03 && byte[3] == 0x04 && byte[4] == 0x05 && byte[5] == 0x06 ){
printf("yes\n");
}else{
printf("no\n");
}
// Aビット演算した結果を比較
if( (byte[2] << 24 | byte[3] << 16 | byte[4] << 8 | byte[5]) == 0x03040506 ){
printf("yes\n");
}else{
printf("no\n");
}
}
2019/08/19(月) 23:35:28.83ID:78Wz1qhX
std::int8_t A[]={0,1,2,3};
std::uint32_t* B=(std::uint32_t)A; //care align.

if(*B == 0x03020100){
//yes.
}else{
//no
}
SIMDライクな感じで比較できる気がするけど、おススメはしない。
エンディアン注意。
2019/08/20(火) 00:09:06.19ID:C94+kmpU
クヌース-モリス-プラット法とかボイヤー-ムーア法とかやらんかい
ttps://nebuta.hatenablog.jp/entry/20110127/1296115997
2019/08/20(火) 01:22:04.58ID:PxgCmY+k
>>554
memcmp とか std::equal とか。速度はどうなるかわからないので推測じゃなくて実測でよろしく。
2019/08/20(火) 01:33:17.10ID:XxGMpj+X
データの性質によるけどテーブル使ったCRC16で比較するのは?
2019/08/20(火) 01:43:07.39ID:P90sZTO5
>>554
ぐだぐだ考えてないでてめえで計測しろ
計測しないなら黙ってmemcmp使っとけ
2019/08/20(火) 02:14:14.18ID:HUUEwIaK
>>554
少量のメモリ上の値比較やコピーの処理時間なんて無視できる程度で考える必要もない。
大量のデータの比較を行うとしたら、その大量のデータがメモリ上に存在するために多くの場合はファイルI/Oなり通信なり演算なりしているはずで、そちらのコストの方が桁違いに大きいから単純な比較処理のコストを気にするのは無意味。
ほんとに気にする必要があるのか、まずは確認すべきだろう。つまらない高速化を考えるより、可読性の高い素直なコードを書いた方がいいよ。
2019/08/20(火) 13:11:19.02ID:20EaQULd
高速化って言ったら、やっぱりよく使う変数をレジスタに割り当てることが大事だよな
メンバ変数は毎回メモリとやり取りするので遅くなるから
ループ外で自動変数に読み込んでから使うとビックリするぐらい速くなったよ
2019/08/20(火) 13:24:48.11ID:dsMJquaY
(いつの時代の話だろう?)
2019/08/20(火) 13:45:22.85ID:JO8kTZu8
(コンパイラを作っているのだろう)
564520
垢版 |
2019/08/20(火) 13:57:22.86ID:vf53Ia55
(日記はチラウラに)
2019/08/20(火) 14:07:45.10ID:hCU5dYnH
(>>562-564
こいつらの自信はどっから来てるんだろう)
2019/08/20(火) 14:18:58.77ID:Ic3/d448
(むしろ自信なんてどこから出てきたんだ…)
567デフォルトの名無しさん
垢版 |
2019/08/20(火) 14:29:19.64ID:aHZAynoR
よくあるような、
if ( (c >= 'A' && code <='Z') || (c >= 'a' && code <='z') ||
  c == '_' ) {
 ・・・
}
の部分を、条件jmp文が少しでも少なくなるようにと思って、
予め作成しておいたテーブル(配列)を使って、
if ( eiji_or_underscore[c] != 0 ) {
 ・・・
}
として実測してみたところ、何度計測しても後者の方が遅くなった。
アセンブリコードを見てみても、前者だと5つの条件jmp命令、後者だと1つの条件jmp命令と、
後者の方が命令数が少なくっていた。しかし、前者だと、レジスタとcmp命令を使っていたが、
後者だとグローバル変数の配列を読み出しに行っていた。

最近のCPUは非常に複雑で高度な「分岐予測」をしていて、配列は読み出してみないと
値が分からないので、「予測」ができず、分岐予測の「予測間違い」がおきるが、
レジスタをcmpで比較する場合には予測が出来るためだろうか。

しかし、昔より最適化する際にどっちが高速になるかの予想が難しくなってしまってる。
2019/08/20(火) 14:39:39.94ID:aHZAynoR
>>567
誤:if ( (c >= 'A' && code <='Z') || (c >= 'a' && code <='z') ||
正:if ( (c >= 'A' && c <='Z') || (c >= 'a' && c <='z') ||
2019/08/20(火) 14:40:33.96ID:hCU5dYnH
分岐予測はデータの内容関係ないやろ
2019/08/20(火) 14:48:01.70ID:lOKfo+mN
最近の環境では「実測」の信頼性確保も、また難しいです。
なぜかある時には何度測定しても遅いのに、あらためて別の時に
測ると速く出る事があったりします。
2019/08/20(火) 14:48:40.12ID:vf53Ia55
単にテーブル参照はメモリーから読み出すから遅いだけだろ
2019/08/20(火) 14:49:27.63ID:20EaQULd
俺が書いた通り、単にメモリへのアクセスが遅いんだよ
2019/08/20(火) 15:08:33.40ID:aHZAynoR
理論上は、メモリがキャッシュに乗っている限り、メモリの読み書きとレジスタ
への読み書きの速度は同一です。

ただし、メモリとメモリは add, sub, mov 命令で2つのオペランドに同時指定は
出来ないのに対し、レジスタは出来るので、確率的にレジスタの方が必要な
命令数が少なくて済むので高速になる場合があります。
あとキャッシュに乗って無い場合はメモリは遅くなります。
2019/08/20(火) 15:22:22.32ID:hCU5dYnH
>>571
アホか>>567読み直せ
2019/08/20(火) 15:23:45.52ID:hCU5dYnH
あ、すまん俺の方が間違えてた・・
まさかとは思うけど最適化してないとか無いよね
2019/08/20(火) 15:29:52.16ID:lOKfo+mN
>>575
最適化はどちらも同じオプションでしてますし、出力されたアセンブリ・コード
も見て、テーブルを使った方が命令数の少ないコードになっていることも
確認してます。条件jmp命令も少なくなっています。
2019/08/20(火) 15:30:02.90ID:hCU5dYnH
あと前者のコードは与えたcの値がA-Zだと分岐の回数2回で済むからじゃないかね
2019/08/20(火) 15:36:01.76ID:aHZAynoR
>>577
実はその影響もあると思っているのですが、それだけだと前者の場合には、
命令数から言えば1〜2クロックほど速くなる場合がある程度です。
しかし、実測してみると、後者のやり方の方がもっと遅くなっている
ようなんです。

面倒ですが、マクロスイッチでコードを切り替えられるようにして
短時間の内に二つを切り替えて速度比較してみようかと思っているところです。
2019/08/20(火) 15:51:20.21ID:lOKfo+mN
最近のCPUは温度によってクロック数が変動する可能性もあるそうですね。
2019/08/20(火) 16:13:18.12ID:hCU5dYnH
テーブルがキャッシュに乗ってなかったり、
>>561と同じでテーブルがグローバル変数だと書き換えを懸念して最適化ぎ抑制されてんじゃないかな
2019/08/20(火) 16:16:16.40ID:JJ0cBhAp
レンジエラーになりそうで怖い。っていう横やり。
2019/08/20(火) 16:23:55.23ID:lOKfo+mN
マクロスイッチ切り替え方式にして、ほぼ同時に両方を測定してみたら、
テーブル方式の方が速くなっていました。
2019/08/20(火) 16:32:21.29ID:JJ0cBhAp
キャッシュ汚染とかの話になったの?
2019/08/20(火) 17:25:38.94ID:lOKfo+mN
>>580
アセンブリコードを見る限り、特に問題なく、人間が単純に書いた場合
と似たようなコードになっています。

ただし、一点、テーブルの c 番目の要素を参照する際、バイト整数の c
をゼロ拡張して32BIT 整数にする必要があるのですが、自分の使ってるVC++
だと、movzx 命令を使わずに、xor eax,eax; mov al,cl のように2命令
を使ってしまっている点が、人間が最適化するより遅いコードになってしまって
います。
585554
垢版 |
2019/08/20(火) 18:34:23.13ID:4t2XBONQ
コメントありがとうございます。

>>555
エンディアンを気にしないといけないのは後々分かりづらくなりそうですね。。

memcmpというのがあったんですね。
連続バイト比較ができてシンプルで良さそうです。
これを使ってみます。
2019/08/20(火) 19:55:32.24ID:otgnf5aI
volatile命令の他にキャッシュ命令とか無いのかよ
ルックアップテーブルをキャッシュに載せときゃ爆速じゃん
もっと言えばテーブルを石に焼いた時一番早い
2019/08/20(火) 22:55:27.89ID:C94+kmpU
>>569
>分岐予測はデータの内容関係ないやろ
分 岐 予 測 は デ ー タ の 内 容 (統計的偏り) に 関 係 あ る

>>567
最近のCPUは黒魔術で製造されているからミクロな最適化を下手に人が手を加えるより
単純なアルゴリズムにした方が速いことが多くなた
印象
2019/08/20(火) 23:22:44.05ID:hCU5dYnH
>>587
お前はアレか
>>567の言う「配列は読み出してみないと値がわからないので、予測が出来ず」
が正しいと?
2019/08/21(水) 01:15:10.83ID:X4j3osk/
多分メモリが読めてない状態でも分岐予測して投機的実行はするんじゃないかな
近代的なCPUは
2019/08/21(水) 05:42:53.52ID:Vc3YPkYv
>>567の前半部のコード
>if ( (c >= 'A' && code <='Z') || (c >= 'a' && code <='z') ||
>  c == '_' ) {
> ・・・
>}
はCPUレベルの分岐予測+投機的実行では入力データによっては速度向上し難いケースがある
 AaZz_AaZz_AaZz_....
という入力を考えたらワカル(cといして1文字入力される度に||か&&を打ち切る分岐箇所がちがーう
分岐予測キャッシュというのは分岐命令1個につき1状態か2状態記憶がせいぜい(しかもLRU式に記憶が消える
のでこのような場合は投機的実行結果が捨てられ続けかねない

>>598
ハイ論破

>>589
分岐予測と投機的実行が効力を発揮するのは多重ループで内側の分岐条件が大部分の時間変わらないというケース
2019/08/21(水) 05:59:08.65ID:Vc3YPkYv
ちゅか&&や||の条件式に関数呼び出しが含まれない単純なケースにおいては、
OoOと分岐予測を備えた今日日のCPUでは途中で打ち切るより全部評価してしまった砲が速い可能性がおおきい
このとき問題になるのは副作用のある式が問題であり、
副作用がある++や--があると、やっぱ言語規格どおり||や&&は条件成立で打ち切らないとソースコードに書かれた気体動作と
オブジェクトコードの動作が別物になってしまうので諸悪の根源
C言語を引きずった仕様のままでは時代について逝けてない

Rustで++や--を式の中で使えないのは故無きことでは無いんじゃ…
2019/08/21(水) 06:00:45.09ID:Vc3YPkYv
スマンGoと混同した
Rustに++や--は無い
2019/08/21(水) 06:13:21.67ID:UK/6EOKQ
もうRustはいいから
2019/08/21(水) 07:20:20.39ID:6njIT3pF
>>590
> (しかもLRU式に記憶が消える
知ったか乙
せめて
https://ja.m.wikipedia.org/wiki/分岐予測
くらいは読んでこい

> のでこのような場合は投機的実行結果が捨てられ続けかねない
そりゃ頑張って作れば最悪の状況は作れるよw
だから何?って話だが
2019/08/21(水) 10:08:42.06ID:yoKe7uXb
>>590
そういう安価ミスはちゃんと訂正しろよ
あと反論になってない
語弊はあったろうけど配列だから分岐予測が効かないなんて話はないだろうと言いたかっただけだ
2019/08/21(水) 20:40:17.99ID:fYY/XStv
>>586
1バイトの即値データとの比較の方が速いに決まってんだろ。
命令デコードする段階で比較対象のデータとってこれるんだから
2019/08/21(水) 22:54:56.30ID:Vc3YPkYv
>>594
リンク先のどこにLRUでは無いと書いてあるんじゃ…
分岐予測キャッシュがあふれたときはLRUが基本
これは2次キャッシュを儲けても関係ない(それぞれの中で溢れたらLRU
むしろハードウェア実装の制限でLRUより性能の落ちるしくみを使うこともある
が(nウェイセットアソシアティブの「アソシアティブ」部分は一部アドレス線の固定解釈による簡素化

>>595
分岐予測が性能を発揮しない例が有る以上ハイ論破の訂正の必要は認められぬ
2019/08/21(水) 23:02:56.86ID:Vc3YPkYv
もし分岐予測制度を上げるためのキャッシュエントリのn状態化とキャッシュが溢れた場合の話を
混同しているんだとしたらきわめておめでたい話だといえる

あるアドレスの分岐命令に対応するキャッシュエントリがどの状態に居たとしても、
そんあことはお構いなしに溢れたときはどれかのエントリが消される.。
このとき他の制約が無ければ理想解はLRUという話
2019/08/21(水) 23:16:22.08ID:Vc3YPkYv
ていうか
>1状態か2状態記憶がせいぜい(しかもLRU式に記憶が消える (>>590
とまで書いたのだからキャッシュエントリのn状態化は機知の前提で話していることぐらいは読み取って
ホスイ
(雑駁なリンク先を示すよりはむしろ「1状態って何だよ2状態だろパーカwwwwwww」ぐらいの反応であれば>>594は知性を疑われずに済んだ
2019/08/21(水) 23:18:51.67ID:yoKe7uXb
ただのこじつけじゃねーか
てかそんだけ御託並べて質問者へのアドバイスはゼロかw

(というかこいつの論調どっかで見たな・・・)
2019/08/22(木) 00:05:50.83ID:F37ex36A
>>597-599
分岐予測はキャッシュじゃねーぞw
反論するなら分岐予測にLRUアルゴリズムを使ってる奴はCPU挙げてみな
2019/08/22(木) 10:59:48.20ID:36M5lMYO
いや、まてまて、そもそも今の話は、分岐予測の精度は関係無いのでは?

>「配列は読み出してみないと値がわからないので、予測が出来ず」

がおかしいって話でしょ
精度はともかく、分岐予測はするでしょ
というか、逆に、値が分からないから分岐予測するようなもので

分岐予測の精度に関しても、if文のかっこの中の計算が終わってない状態で
適当にジャンプするのは同じでしょ、配列が読めてようが読めてなかろうが
2019/08/22(木) 11:58:47.76ID:Vlc++9B2
そりゃー予測なんかせず配列まるまる全部をキャッシュに乗せるから早いんだろ
つまり予測しないルックアップテーブルの時が一番早い
そのテーブルがCPUに焼きこんであればもっと早い
2019/08/22(木) 13:09:16.96ID:36M5lMYO
いやだから、ルックアップテーブルの結果を受けて分岐する話なんだから・・
おかしなこと言うな
2019/08/22(木) 14:18:30.45ID:Ubta0nDz
イキってるパソコンの大先生の子供部屋おじさんがいますね…
2019/08/22(木) 15:51:21.48ID:eMNxtHht
多くのCコンパイラがサポートしてるquadmath (__int128とか__float128とかその関数)がかなり便利なのですが、なぜこれはC++の標準の機能にならなかったのですか?
2019/08/22(木) 18:02:39.65ID:/5icwwgo
殆んどのハードでの実装がソフトで遅いし、需要も少ない
使いたきゃboostにあるし

標準化されるとしたら、x86とかでハード実装された後に標準型として対応するんじゃね?
てかlong doubleがワケわからんことになっているのをどうにかしろと
2019/08/22(木) 18:28:45.94ID:6PHJNtSf
'A' から 'Z と 'a'から'z' は連続した文字コードである
ここにcpuの速度の秘密がある はず
2019/08/22(木) 19:44:40.23ID:/1dDo18x
>>608
> 'A' から 'Z と 'a'から'z' は連続した文字コードである
はあ?
2019/08/22(木) 20:52:16.00ID:KKaRKvsP
>>606
大型計算機にすら倍々精度をハードウェアで扱ってないもんな
命令体系は用意されてるけど
ソフトで十分ってこった
2019/08/22(木) 20:56:48.17ID:NZc4hO3L
>>606
ところで、そんな精度を何に使ってるの?
2019/08/22(木) 20:59:38.41ID:2HKFvfoP
float128よりdecimal64の方が需要あるんじゃね
2019/08/22(木) 21:59:41.74ID:AFh1DZYh
>>612
それ金融でほしいやつだな。
国家予算研究できるな!
2019/08/22(木) 22:01:20.66ID:ufMqk9YS
そこでCOBOLですよ
2019/08/22(木) 22:10:35.40ID:AFh1DZYh
KaMiの言語・コボル かー。


読めんわ!!!
2019/08/22(木) 22:26:31.30ID:QnESaaq9
https://github.com/LiraNuna/soft-ieee754
こういうのもあるよ。
自分のデータ型を作ろうとすればできないこともない。
2019/08/22(木) 22:29:56.92ID:AFh1DZYh
>>616
金融計算をIEEE754(?)でやってはいけないのだ。
2進化10進数でやらないと誤差が出る。
2019/08/22(木) 22:53:17.49ID:MZ7gjtS4
二進化十進数でも誤差でるから
当たり前だけど
有理数でやるんだよ
2019/08/22(木) 22:59:39.88ID:ywV62E2Z
そういう話じゃない。
金融計算では10進数のどの桁でどういう丸めを行うか決まっているから、
その通りの結果になることが「誤差がない」状態なんだよ。
2019/08/22(木) 23:13:26.11ID:4VSp96xm
普通そういうのは多倍長整数じゃないのか
2019/08/23(金) 00:16:10.19ID:/B94cENN
>>611
畳み込み和の計算はフーリエ変換して求めておいて最後に逆変換することで高速化できます (畳み込み定理) が、しばしば誤差の増大がネックになります
こういう問題で出てくる整数はとても大きいということもあります
だから巨大な数を普通に扱いたいのです

数論変換 (整数環上でのDFT) をすれば良いのですが、もっと単純化できないかという試行錯誤です
2019/08/23(金) 00:39:49.78ID:CmTDylN7
蒸し返すようですいませんがGNU Makeに取って代わるデファクトスタンダードなビルドシステムってCMakeじゃないんですかね
2019/08/23(金) 02:34:27.19ID:5WDa9rK8
>>608
規格で保証されてるのは'0'から'9'が連続してることだけな
2019/08/23(金) 21:07:50.69ID:1CEPBqe0
>>622
取って代わるというかmakefileをつくるメタビルドツールって方が認識として正しい。
実際cmakeでwindowsでもlinuxでもビルドできるように設定するのはマジ辛いぞ。
■ このスレッドは過去ログ倉庫に格納されています