https://mevius.5ch.net/test/read.cgi/tech/1589424805/
※前スレ
C++相談室 part152
https://mevius.5ch.net/test/read.cgi/tech/1594528940/
テンプレおしまい
C++相談室 part153
■ このスレッドは過去ログ倉庫に格納されています
2020/10/10(土) 23:18:20.00ID:i4F+i14Y
767デフォルトの名無しさん
2020/12/18(金) 23:29:15.18ID:zfI8p5qO プログラマがうんちく言わないで何やるんだ?
768デフォルトの名無しさん
2020/12/18(金) 23:48:52.19ID:A9pQAhpY これの話の続きなのか
なら不思議は解消だ
謎は全部解けた
C++相談室 part151
https://mevius.5ch.net/test/read.cgi/tech/1589424805/20
20 名前:デフォルトの名無しさん[sage] 投稿日:2020/05/14(木) 18:32:35.87 ID:jF4/VTtK
>>17
ggrks
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
あとcppreferenceはある意味ファンサイトみたいなものなので、何らかの標準化組織の公式サイトというわけじゃないよ
なら不思議は解消だ
謎は全部解けた
C++相談室 part151
https://mevius.5ch.net/test/read.cgi/tech/1589424805/20
20 名前:デフォルトの名無しさん[sage] 投稿日:2020/05/14(木) 18:32:35.87 ID:jF4/VTtK
>>17
ggrks
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
あとcppreferenceはある意味ファンサイトみたいなものなので、何らかの標準化組織の公式サイトというわけじゃないよ
769デフォルトの名無しさん
2020/12/19(土) 00:02:31.33ID:yZxXMpJa そんな昔のスレは関係ないのでは?
770デフォルトの名無しさん
2020/12/19(土) 00:20:03.02ID:0cb9HLXb >>766
こういうとこでの情報提供や議論はともかく、うんちくでマウント取りたがるのは自信の無さの裏返しだからねぇ
こういうとこでの情報提供や議論はともかく、うんちくでマウント取りたがるのは自信の無さの裏返しだからねぇ
771デフォルトの名無しさん
2020/12/19(土) 00:23:06.73ID:sq702jvD うんちくがうっとおしくて、仕事なら自分が勝ってる!って思い込みたいだけなんじゃないの
772デフォルトの名無しさん
2020/12/19(土) 00:26:01.61ID:yZxXMpJa 図星つかれたからうんちくと言ってるのでは?
773デフォルトの名無しさん
2020/12/19(土) 00:38:15.56ID:x1EY5aRu スカトロスレ
774デフォルトの名無しさん
2020/12/19(土) 00:42:57.09ID:0cb9HLXb 爆釣ww
775デフォルトの名無しさん
2020/12/19(土) 03:34:46.64ID:yZxXMpJa この野郎。
ウンチクンめ。
ウンチクンめ。
776デフォルトの名無しさん
2020/12/19(土) 06:01:48.82ID:u3YcA1fK777デフォルトの名無しさん
2020/12/19(土) 08:07:11.10ID:vl/1bKki まあお茶でも飲んでカルシウム取ろう
778デフォルトの名無しさん
2020/12/19(土) 10:17:03.91ID:M1Nera9i お茶にはカルシウム入ってないだろほとんど
779デフォルトの名無しさん
2020/12/19(土) 10:18:39.16ID:dTYT78ol お茶とカルシウム入りウェハースでも食えばええやん
780デフォルトの名無しさん
2020/12/19(土) 10:25:15.46ID:cik2rIYa 何のはなしやねん
781デフォルトの名無しさん
2020/12/19(土) 13:23:01.76ID:biviwPkb Ca++
782デフォルトの名無しさん
2020/12/19(土) 13:26:14.15ID:biviwPkb 正式版は有料だがドラフトはタダで手に入るからヒジョーに得がたいが、
やっぱドラフトの内容は随時変わるから、
居丈高に相手を論破してなじり倒すにはやっぱ最新のドラフトでないとイマイチ、
やっぱドラフトの内容は随時変わるから、
居丈高に相手を論破してなじり倒すにはやっぱ最新のドラフトでないとイマイチ、
783デフォルトの名無しさん
2020/12/19(土) 13:50:09.89ID:B7wez7Ce よくわかりませんが、Chromeで実装されてるお試し機能がSafariで実装されてないからSafariはクソというのと似た話ですか?
784デフォルトの名無しさん
2020/12/19(土) 14:02:30.06ID:biviwPkb Chromeで実装されてるお試し機能がSafariで実装されてないからSafariはクソとなじったら
ドラフトの版が変わったらChromeの方がクソだった、みたいな
ドラフトの版が変わったらChromeの方がクソだった、みたいな
785デフォルトの名無しさん
2020/12/19(土) 14:41:50.09ID:+cK8B71a ゴミみたいなやり合いだな
くだらな
建設的な議論ができんのか
くだらな
建設的な議論ができんのか
786デフォルトの名無しさん
2020/12/19(土) 18:35:13.01ID:dM4VNuuI C++のプロジェクトに始めて関わって既存コード眺めてたんだけど、関数やメソッドを呼び出す時って、呼び出す側が結果を格納する箱となる変数とかポインタを渡して、
メソッドや関数は成功失敗のint値をreturnする書き方しているんだけど、
これってC++の書き方なの?
メソッドや関数は成功失敗のint値をreturnする書き方しているんだけど、
これってC++の書き方なの?
787デフォルトの名無しさん
2020/12/19(土) 18:41:15.86ID:5blMWj9s788デフォルトの名無しさん
2020/12/19(土) 18:42:49.16ID:x1EY5aRu どう世界が違うの?
いじわるしないで教えてよ
いじわるしないで教えてよ
789デフォルトの名無しさん
2020/12/19(土) 18:46:00.09ID:dM4VNuuI メモリ管理の文化的な作法なのね。
790デフォルトの名無しさん
2020/12/19(土) 18:47:02.46ID:5blMWj9s791デフォルトの名無しさん
2020/12/19(土) 19:25:11.20ID:p4OhEmVF792デフォルトの名無しさん
2020/12/19(土) 19:59:05.03ID:HGWooSzm Cだと不定長の配列やら文字列やら返す関数ひとつ作るだけで大事件だからなぁ
「いいですかー!この関数が返す配列はヒープ確保したものですよー!使い終わったらXXX__free()で解放してくださいよー!
解放忘れたらリークしますよー!!!絶対に最後に解放してくださいよー!忘れないでねー!絶っっっっっっ対に忘れないでねー!!!」
ってコメントやドキュメントやサンプルコードにしつこくしつこくしつこく書いて書いて書いて徹底的に注意喚起しないといけない
そして当然のように忘れられて「分かりにくい関数作りやがって」って叩かれる所までがお約束
vectorやstringをゴロッと返せば済む今はいい時代になったと思う
「いいですかー!この関数が返す配列はヒープ確保したものですよー!使い終わったらXXX__free()で解放してくださいよー!
解放忘れたらリークしますよー!!!絶対に最後に解放してくださいよー!忘れないでねー!絶っっっっっっ対に忘れないでねー!!!」
ってコメントやドキュメントやサンプルコードにしつこくしつこくしつこく書いて書いて書いて徹底的に注意喚起しないといけない
そして当然のように忘れられて「分かりにくい関数作りやがって」って叩かれる所までがお約束
vectorやstringをゴロッと返せば済む今はいい時代になったと思う
793デフォルトの名無しさん
2020/12/19(土) 20:17:48.73ID:vl/1bKki 消費者が買い物袋用意するなんてレジ袋有料化みたいだな
794デフォルトの名無しさん
2020/12/19(土) 20:19:43.48ID:yZxXMpJa 右辺値参照のおかげですよ。
795デフォルトの名無しさん
2020/12/19(土) 21:06:02.20ID:ISt3uDJM 質問@:
例えば…std::vectorで配列を確保したとします…push_backで追加した時に…アロケーター??が…
アドレスの再割当てをしたとします…この時…vectorは要素のアドレスは連続である事は保証されますが…
この時のアドレスの再割当てって…同期?非同期?どうなるの?
つまり…push_back時に同期で行うのか…非同期でロジック流れて行っちゃうか…って所…。
非同期だと怖いんだけど…。
質問A:
std::vector<char>とやった場合…data()でchar*を取れますが…std::vector<char>に'\0'の概念って
あります?どうなんでしょうねぇ…。'\0'のために+1多めに確保するなんて事はしないと思いますが…
どうなん?内部でどうなってるのかは…解りません…。
例えば…std::vectorで配列を確保したとします…push_backで追加した時に…アロケーター??が…
アドレスの再割当てをしたとします…この時…vectorは要素のアドレスは連続である事は保証されますが…
この時のアドレスの再割当てって…同期?非同期?どうなるの?
つまり…push_back時に同期で行うのか…非同期でロジック流れて行っちゃうか…って所…。
非同期だと怖いんだけど…。
質問A:
std::vector<char>とやった場合…data()でchar*を取れますが…std::vector<char>に'\0'の概念って
あります?どうなんでしょうねぇ…。'\0'のために+1多めに確保するなんて事はしないと思いますが…
どうなん?内部でどうなってるのかは…解りません…。
796デフォルトの名無しさん
2020/12/19(土) 21:33:09.17ID:HGWooSzm 普通に質問しろ
797デフォルトの名無しさん
2020/12/19(土) 22:28:27.67ID:yZxXMpJa798デフォルトの名無しさん
2020/12/19(土) 22:39:50.71ID:u3YcA1fK799デフォルトの名無しさん
2020/12/19(土) 22:59:41.56ID:vl/1bKki 確かにCだと必要メモリの問い合わせの為に二度呼び出したり面倒でしたわ…
800デフォルトの名無しさん
2020/12/19(土) 23:18:45.05ID:biviwPkb >>798
正式版の規格票は金かかるやんけヽ(`Д´)ノ
正式版の規格票は金かかるやんけヽ(`Д´)ノ
801デフォルトの名無しさん
2020/12/19(土) 23:20:05.98ID:biviwPkb >std::vectorは末尾に0を追加したりしません。
左様いまだにstd::string::c_str()が内部で何をやっているのかわからん…
左様いまだにstd::string::c_str()が内部で何をやっているのかわからん…
802デフォルトの名無しさん
2020/12/20(日) 00:32:15.85ID:zH6cQZTj 誰もstringの話してないと思うが
803デフォルトの名無しさん
2020/12/20(日) 07:06:06.65ID:u5Xjtcw/804デフォルトの名無しさん
2020/12/20(日) 09:47:23.01ID:C7ljP8CG805デフォルトの名無しさん
2020/12/20(日) 10:51:49.27ID:KSHt8d36 今どきのC++(C++11以降)だと基本的にスコープ抜けたら開放される方式で実装するものなの?
なるべくnewせずにスタック変数にする or ヒープ確保するにしてもスマートポインタ使う
とかで
なるべくnewせずにスタック変数にする or ヒープ確保するにしてもスマートポインタ使う
とかで
806デフォルトの名無しさん
2020/12/20(日) 11:14:31.35ID:IFRd5RXQ >>805
そうしたほうが簡単だから、C++11とか関係無くそうするだろ。
そうしたほうが簡単だから、C++11とか関係無くそうするだろ。
807デフォルトの名無しさん
2020/12/20(日) 11:16:20.77ID:B3eFXD1J RAIIなんて今どきでもないだろ
808デフォルトの名無しさん
2020/12/20(日) 11:27:39.08ID:KSHt8d36 そうかな?
ライブラリとかでわざわざInitialize/Finalizeとか明示的に呼ばなきゃいけないの
結構ある気がするけど
ライブラリとかでわざわざInitialize/Finalizeとか明示的に呼ばなきゃいけないの
結構ある気がするけど
809デフォルトの名無しさん
2020/12/20(日) 11:52:43.58ID:mkiVvOjR Finalizeが失敗する可能性があってエラーハンドリングしないといけない場合はあえてそうしているかもね
810デフォルトの名無しさん
2020/12/20(日) 13:25:24.04ID:8M1CEzDz あえてね!
811デフォルトの名無しさん
2020/12/20(日) 13:31:53.40ID:1w6q/2mK というかスコープ内で完結しない、グローバルな状態を持つものならそうするやろ
812デフォルトの名無しさん
2020/12/20(日) 13:48:55.12ID:KSHt8d36 グローバルバカかな?
813デフォルトの名無しさん
2020/12/20(日) 13:52:50.85ID:BqPIIXKk お前が挙げてたそういうライブラリがInitialize/Finalizeの中で何やってるか考えれば自ずと答えはでるだろ
814デフォルトの名無しさん
2020/12/20(日) 14:05:47.98ID:S1Ae4PMu グローバルな初期化と後始末ならInitialize/Finalizeとか明示的に呼ぶ設計のが一番闇が少ない
ファクトリメソッドでオブジェクトを作ることにして、ファクトリ元オブジェクトの
コンストラクタとデストラクタでそれぞれInitializeとFinalizeでも良いが(呼び忘れ対策は完璧になるが
InitializeやFinalize自体のエラーハンドリングを考えるとやっぱビミョー
ファクトリメソッドでオブジェクトを作ることにして、ファクトリ元オブジェクトの
コンストラクタとデストラクタでそれぞれInitializeとFinalizeでも良いが(呼び忘れ対策は完璧になるが
InitializeやFinalize自体のエラーハンドリングを考えるとやっぱビミョー
815デフォルトの名無しさん
2020/12/20(日) 21:00:32.48ID:POdM0+je 変数名で対象変数のポインタを取得してくる実装(リフレクション?)をしたいんですけど
対象変数をポインタテーブルとかに書き下すことなくコンパイル時に変数名リテラルと対応するポインタを自動生成することってできますか?
対象変数をポインタテーブルとかに書き下すことなくコンパイル時に変数名リテラルと対応するポインタを自動生成することってできますか?
816デフォルトの名無しさん
2020/12/20(日) 21:02:59.13ID:POdM0+je 対象変数はstructかclassのメンバ変数を想定しています
817デフォルトの名無しさん
2020/12/20(日) 21:23:18.64ID:B3eFXD1J 直接には無理
目的次第だけど基本的にはプリプロ駆使して頑張るしかない
目的次第だけど基本的にはプリプロ駆使して頑張るしかない
818デフォルトの名無しさん
2020/12/20(日) 22:39:57.26ID:pIq+bOjP まずC#処理系を書きます
819デフォルトの名無しさん
2020/12/20(日) 22:49:36.29ID:ZSjgwNod 車輪がでかすぎる
820デフォルトの名無しさん
2020/12/20(日) 23:37:12.93ID:XnWb8UXr マップファイルから生成
821デフォルトの名無しさん
2020/12/21(月) 02:47:40.73ID:HVkDagg+ 数値計算に興味がある方に聞きたいのですが、ベクトル演算はどのように実行していますか?
valarrayかeigenなのか、vectorでforを回すのか…C++の常識ではどうやるのか伺いたいです
valarrayかeigenなのか、vectorでforを回すのか…C++の常識ではどうやるのか伺いたいです
822デフォルトの名無しさん
2020/12/21(月) 03:43:19.44ID:tQs5NvLs >>821
blasやlapackにルーチンがあるならそれを使う(ラッパーを作る)
要素の持ち方はvectorでもvalarrayでもその他クラスでも、一次元的にメモリに格納されるなら何でも良い
二次元以上の配列が行優先か列優先かさえ固定しておけば何でも良い
blasやlapackにルーチンがあるならそれを使う(ラッパーを作る)
要素の持ち方はvectorでもvalarrayでもその他クラスでも、一次元的にメモリに格納されるなら何でも良い
二次元以上の配列が行優先か列優先かさえ固定しておけば何でも良い
823デフォルトの名無しさん
2020/12/21(月) 12:49:04.92ID:h5UrY03S >>821
時と場合による
時と場合による
824デフォルトの名無しさん
2020/12/21(月) 12:49:33.35ID:h5UrY03S ベクトル演算
ていうだけじゃ広すぎて
ていうだけじゃ広すぎて
825デフォルトの名無しさん
2020/12/21(月) 12:52:20.80ID:XzTX0Cyb SVDとかするなら自前実装なんか無駄だからeigen使う。それ以外なら>>822 の通りだな。
826デフォルトの名無しさん
2020/12/21(月) 19:14:50.06ID:5SN4/ItM みなさんありがとうございます
主に多次元の常微分方程式を解く目的でFortranからc++へ移行しようと考えていたのですが、ベクトル和やスカラーベクトル積等の計算がFortranほど簡単ではなさそうに感じて質問しました
eigen等を活用しつつ頑張ってみます
主に多次元の常微分方程式を解く目的でFortranからc++へ移行しようと考えていたのですが、ベクトル和やスカラーベクトル積等の計算がFortranほど簡単ではなさそうに感じて質問しました
eigen等を活用しつつ頑張ってみます
827デフォルトの名無しさん
2020/12/21(月) 20:22:43.20ID:94n2fENi そりゃそうだろな
汎用機の時点で科学計算と銀行計算の両方ができる
だから科学専用に作られているFortranと汎用のC言語は根本的に用途が違う
そもそもFortranの後に作られたのがC言語だし、時期も近いし、
だからFortranで出来ることをわざわざC言語でやったりはしない、
用途での住み分けがそのころからある
後発の方が簡単に出来るというのは幻想
汎用機の時点で科学計算と銀行計算の両方ができる
だから科学専用に作られているFortranと汎用のC言語は根本的に用途が違う
そもそもFortranの後に作られたのがC言語だし、時期も近いし、
だからFortranで出来ることをわざわざC言語でやったりはしない、
用途での住み分けがそのころからある
後発の方が簡単に出来るというのは幻想
828デフォルトの名無しさん
2020/12/21(月) 21:07:13.89ID:HyYYfsZ0 簡単なことは簡単に言え
既成のソフトを使い慣れているならそれを使え
不満があるときに自分の理想との違いを埋めるのに
打って出る手段の1つにプログラミングがある
それはC++に限らない
たまたまC++を選んだのなら自らの名誉に恥じぬ努力をせいや
これまたC++に限ったことではないがな
あれ使えばいいやー、これ使えばいいやー
自分なんか物事を考えるだけ無駄なんだー
↑
こういうスタンスのやつ、俺は反吐が出るほど大大大大大嫌い
既成のソフトを使い慣れているならそれを使え
不満があるときに自分の理想との違いを埋めるのに
打って出る手段の1つにプログラミングがある
それはC++に限らない
たまたまC++を選んだのなら自らの名誉に恥じぬ努力をせいや
これまたC++に限ったことではないがな
あれ使えばいいやー、これ使えばいいやー
自分なんか物事を考えるだけ無駄なんだー
↑
こういうスタンスのやつ、俺は反吐が出るほど大大大大大嫌い
829デフォルトの名無しさん
2020/12/21(月) 23:35:19.34ID:5SN4/ItM ヘッダファイルに
double hoge = 1.0/3.0;
みたいに書いてた場合、除算はどのタイミングで行われるんですか?初回呼び出し時のみですよね?
double hoge = 1.0/3.0;
みたいに書いてた場合、除算はどのタイミングで行われるんですか?初回呼び出し時のみですよね?
830デフォルトの名無しさん
2020/12/21(月) 23:51:47.03ID:3sOyVj6l 大昔(40年ぐらい前?)とかもんのすごい特殊な環境用のコンパイラはしらんが
今の普通のコンパイラではそれはコンパイル時に計算される
今の普通のコンパイラではそれはコンパイル時に計算される
831デフォルトの名無しさん
2020/12/22(火) 00:34:06.43ID:M/dL4DYR >>829
コンパイル時に解決されてると思います
コンパイル時に解決されてると思います
832デフォルトの名無しさん
2020/12/22(火) 00:35:40.93ID:M/dL4DYR すみません、830で回答されてましたね
畳み込み、とかで検索してみては
畳み込み、とかで検索してみては
833デフォルトの名無しさん
2020/12/22(火) 02:07:17.74ID:bzbnZ90n >>826
Fortranでも基本的にblasとかlapackに投げるだけじゃないの?
しかもC/C++からFortranルーチン呼べるし
「FortranではやりやすかったがC/C++ではやりにくかったこと」って非常に興味あるから具体的にどういうものか教えてほしい
Fortranでも基本的にblasとかlapackに投げるだけじゃないの?
しかもC/C++からFortranルーチン呼べるし
「FortranではやりやすかったがC/C++ではやりにくかったこと」って非常に興味あるから具体的にどういうものか教えてほしい
834デフォルトの名無しさん
2020/12/22(火) 06:36:52.20ID:GAvzsgv/ blasとかlapackがfortanで記述されてるからね
中身いじるような人がどれほどいるかはわからんけど
中身いじるような人がどれほどいるかはわからんけど
835デフォルトの名無しさん
2020/12/22(火) 08:38:11.38ID:+a9RX7vJ836デフォルトの名無しさん
2020/12/22(火) 09:08:43.07ID:z2CQLL3J 翻訳(interpret)ですか?
C++はコンパイル言語ではないのですか?
C++はコンパイル言語ではないのですか?
837デフォルトの名無しさん
2020/12/22(火) 09:23:29.08ID:Yt10VcGs 翻訳(translate)でしょ。
838デフォルトの名無しさん
2020/12/22(火) 09:26:00.82ID:AY4u6Qzg コンパイラと構文解析とオートマトンって大学の授業でやったなぁ
839デフォルトの名無しさん
2020/12/22(火) 10:18:51.71ID:hq0fof4K Cコンパイラ作ったよね。
840デフォルトの名無しさん
2020/12/22(火) 12:04:28.60ID:GAvzsgv/ constexprとか中身がどうなってるのかもうわけわからん
841デフォルトの名無しさん
2020/12/22(火) 16:28:31.76ID:cQdMNR1v >>834
中身いじるような人がいないからこそ、fortranで(blasやlapack)でできる線形代数計算はC/C++でもできるだろうと思うのだが
中身いじるような人がいないからこそ、fortranで(blasやlapack)でできる線形代数計算はC/C++でもできるだろうと思うのだが
842デフォルトの名無しさん
2020/12/22(火) 23:28:55.02ID:cWduRySe constexprともなるとどこまでコンパイル時計算してくれるかは
処理系依存と聞く…!
関数が絡んだ場合だけかもしれんが
処理系依存と聞く…!
関数が絡んだ場合だけかもしれんが
843デフォルトの名無しさん
2020/12/22(火) 23:41:36.57ID:Yt10VcGs844デフォルトの名無しさん
2020/12/23(水) 00:29:07.29ID:0vtm2rCB constexpr指定したものはコンパイル計算でしょう?
845デフォルトの名無しさん
2020/12/23(水) 01:06:37.35ID:BffjS4vY >>844
コンパイル時評価可能(コンパイル時に評価するとは言っていない)
コンパイル時評価可能(コンパイル時に評価するとは言っていない)
846はちみつ餃子 ◆8X2XSCHEME
2020/12/23(水) 02:19:42.25ID:wEQUKH0P >>844
constexpr 指定が付いた関数は定数式が要求される文脈において
与えられる引数も定数 (定数式) である場合に限りその関数呼出しは
定数式という扱いになる。
定数式が要求される文脈で入力が定数でないならエラーになるし、
定数式が要求されていない文脈であれば実行時計算だよ。
実行時計算にはならない (実行時計算が必要な文脈だとエラーにする) 指定として consteval が導入されたのは、
constexpr の文脈依存な挙動が面倒だと思ったやつがいたからだと思うよ。
constexpr 指定が付いた関数は定数式が要求される文脈において
与えられる引数も定数 (定数式) である場合に限りその関数呼出しは
定数式という扱いになる。
定数式が要求される文脈で入力が定数でないならエラーになるし、
定数式が要求されていない文脈であれば実行時計算だよ。
実行時計算にはならない (実行時計算が必要な文脈だとエラーにする) 指定として consteval が導入されたのは、
constexpr の文脈依存な挙動が面倒だと思ったやつがいたからだと思うよ。
847デフォルトの名無しさん
2020/12/23(水) 06:16:15.13ID:ZPrNOuha C++はまだ色々と足し続けてるのか
constexprはともかくconstinit, constevalて...
constexprはともかくconstinit, constevalて...
848デフォルトの名無しさん
2020/12/23(水) 06:17:06.41ID:ZPrNOuha まるで言語開発屋のおもちゃじゃねえか
849デフォルトの名無しさん
2020/12/23(水) 08:41:53.85ID:iOQdV6uo 今頃気づいたのw
850はちみつ餃子 ◆8X2XSCHEME
2020/12/23(水) 09:20:18.63ID:wEQUKH0P 自動で呼び分けて欲しいと思うこともあれば
コンパイル時に限って欲しいことだってあるだろう。
コンパイル時に限って欲しいことだってあるだろう。
851デフォルトの名無しさん
2020/12/23(水) 19:37:56.48ID:lj5PdyQr 1秒間に1万回くらい数値判定の計算をしてるのですが
Xが3桁の時のみTrueを返すようなコードで一番速いのってどんなコードですかね?
愚直にif(1000>X>=100)でやるのと
if(10>X/100>=1)ではどっちが速いんでしょうか
Xが3桁の時のみTrueを返すようなコードで一番速いのってどんなコードですかね?
愚直にif(1000>X>=100)でやるのと
if(10>X/100>=1)ではどっちが速いんでしょうか
852デフォルトの名無しさん
2020/12/23(水) 19:39:04.22ID:PgZc4XsV 前者
853デフォルトの名無しさん
2020/12/23(水) 19:43:53.01ID:PgZc4XsV 多くのコンパイラは以下に変形しそうな気がする
if (X-100u<900u)
後者をコンパイラが最適化するかどうかはコンパイラ次第
if (X-100u<900u)
後者をコンパイラが最適化するかどうかはコンパイラ次第
854デフォルトの名無しさん
2020/12/23(水) 19:47:49.74ID:PgZc4XsV PCなら1秒に1万回程度なら気にしなくて良い
8bitマイコンだとこの判定だけでも10個以上の命令になったり
8bitマイコンだとこの判定だけでも10個以上の命令になったり
855デフォルトの名無しさん
2020/12/23(水) 20:03:20.62ID:rWjdGSAm 長さ数十億のbool型配列用意すれば早いんじゃね
isDigit3[x] だけで出るじゃん
isDigit3[x] だけで出るじゃん
856デフォルトの名無しさん
2020/12/23(水) 20:04:42.24ID:psZzhFw3 >>851
それ条件式が間違ってるだろ
それ条件式が間違ってるだろ
857デフォルトの名無しさん
2020/12/23(水) 21:04:06.12ID:oO0RWe4j 根本的には、速度って環境依存の性質だから、本当に重要な話なら実測で確かめるしかない。
一般論としては、現代のコンパイラはそこらの人間より賢いから、やりたいことを素直に書いて最適化を任せるのがいい。
わかってない人が余計なことをやると、かえって遅くなる可能性が高い。
計算量のオーダーを変えるような、アルゴリズムレベルの最適化なら意味があるんだけど。
小手先のテクニックは通用しないと思っていい。
一般論としては、現代のコンパイラはそこらの人間より賢いから、やりたいことを素直に書いて最適化を任せるのがいい。
わかってない人が余計なことをやると、かえって遅くなる可能性が高い。
計算量のオーダーを変えるような、アルゴリズムレベルの最適化なら意味があるんだけど。
小手先のテクニックは通用しないと思っていい。
858デフォルトの名無しさん
2020/12/23(水) 22:00:42.78ID:p3n5tJou859デフォルトの名無しさん
2020/12/23(水) 22:21:55.80ID:JqE6cd4a 最適化にも限界はあるから、どういうコードの書き方ならコンパイラが最適化しやすいか、
ってのを知るのは必要なんやろうね
データアクセスの局所化とか偽の依存関係の除去とか
ってのを知るのは必要なんやろうね
データアクセスの局所化とか偽の依存関係の除去とか
860デフォルトの名無しさん
2020/12/23(水) 23:11:04.90ID:pgaSoeQc typedefで二重定義になった場合さぁ…同じ型だとコンパイルエラーにはならないんだよ…
なんか気持ち悪いので…typedefだけのヘッダーを呼ぶようにしたけど…同じ型だとOKなん?
なんか気持ち悪いので…typedefだけのヘッダーを呼ぶようにしたけど…同じ型だとOKなん?
861デフォルトの名無しさん
2020/12/23(水) 23:12:13.58ID:pgaSoeQc ヘッダーに渡しても同じことか…相互参照してるんだった…
862デフォルトの名無しさん
2020/12/23(水) 23:13:21.42ID:pgaSoeQc 一応…間違えないように…ヘッダーに集約しておく…
863デフォルトの名無しさん
2020/12/23(水) 23:13:34.29ID:KqYWGLnc Ruby VM では、1秒間に、100万回ループすると、
Ruby中間言語を、JIT で機械語にコンパイルして、
1秒間に、1,000万回ループ出来るようになる
Ruby中間言語を、JIT で機械語にコンパイルして、
1秒間に、1,000万回ループ出来るようになる
864デフォルトの名無しさん
2020/12/23(水) 23:43:55.33ID:iOQdV6uo いや指定した数だけループしろよ
何勝手に回数10倍に増やしとんじゃい
何勝手に回数10倍に増やしとんじゃい
865デフォルトの名無しさん
2020/12/24(木) 06:19:28.22ID:TzdYJrci サムソンを守るためのHuawei潰しという側面もある。
866デフォルトの名無しさん
2020/12/24(木) 06:55:00.49ID:fOK7nTKz んあ?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 自民・麻生太郎 副総裁 石破政権の1年は「どよーん」 高市政権の発足で「何となく明るくなった」「世の中のことが決まり動いている」 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 「働いて働いて」の流行語大賞に懸念 「言葉が独り歩き」 過労自殺遺族 [尺アジ★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★3
- 官僚「台湾有事についての質問か、『政府として逐一答えない』と…(カタカタカタ)」高市「私1人で答弁できるわよ!」 [972432215]
- 【安倍晋三】クマ駆除で誤射した猟友会隊員に町が1663万円請求【山形】 [452056903]
- 雑談した~い!
- 【悲報】高市早苗、被災民に対し「自分の命くらいは自分で守ってくださいね」と切り捨てし大炎上 [339712612]
- 史上最も「タイトル回収までの流れがアツい作品」www たれそうぞうした? [916950698]
