[過去ログ] C++相談室 part133 (911レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1: (ワッチョイ 1fcf-H1rY) 2017/11/24(金)16:52 ID:WoNXR2ax0(1/2) AAS
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part132
2chスレ:tech
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
省8
812(1): (ワッチョイ ca34-SFeq) 2018/01/03(水)23:20 ID:XsO0N2Ro0(1) AAS
intelのCPUに重大なバグ。修正により性能30%ダウンは確実。 もちろんcoffeeも対象 [589351131]
2chスレ:poverty
>インテルのCEOが関連性は不明だが2017年11月にCEOを最低維持できる25万株残して株式を売却している
ヤバいで
813(1): (ワッチョイ 1f60-1EiW) 2018/01/04(木)00:19 ID:NEvAF4vy0(1/3) AAS
>>812
外部リンク:pythonsweetness.tumblr.com
814: (ワッチョイ 1f60-1EiW) 2018/01/04(木)00:25 ID:NEvAF4vy0(2/3) AAS
>>813
外部リンク:www.theguardian.com
815: (ワッチョイ 1f60-1EiW) 2018/01/04(木)00:34 ID:NEvAF4vy0(3/3) AAS
関連記事がまとまっていた
外部リンク:news.google.com
816: (ワッチョイ efe7-Ogju) 2018/01/04(木)00:45 ID:Z29HpgyU0(1) AAS
えっやばくねこれ
817: (ワッチョイ 0feb-gOZ5) 2018/01/04(木)02:42 ID:tRFYlI1W0(1) AAS
なんか>>811にめちゃめちゃ書いてあるらしく実際そんなヤバないらしいよ
818: (ワッチョイ 3b89-2A+B) 2018/01/04(木)06:34 ID:O1MbUTjx0(1) AAS
やってみろよ
ム板でそういう発言恥ずかしくないのか
819: (ブーイモ MM0f-tDXD) 2018/01/04(木)08:34 ID:BdTp33RzM(1) AAS
システムコール呼び出すたびにアドレス空間を切り替えるパッチを当てるみたいだから、
io叩きまくるコンパイル作業はモロに影響うけるかもね。
arm64版にもパッチを当てるみたいだけど、禿大丈夫か…
820: (アウアウウー Sa8f-hL1C) 2018/01/04(木)18:57 ID:mQU15vmIa(1) AAS
intel抜けてる
intel割れてる
821(1): (アウアウカー Sa4f-672L) 2018/01/05(金)22:53 ID:eQNcfao2a(1) AAS
c++で例外は使ってますか?
また使う場合std::exceptionを継承しますか?
822: (ワッチョイ cb78-dycC) 2018/01/05(金)23:16 ID:Zjbc7FO50(1) AAS
最後の門番がstd::exceptionなんで継承して使う
823: (ワッチョイ 2bb3-hL1C) 2018/01/05(金)23:33 ID:o2QD25iD0(1) AAS
] ][][[[ [][] [[["][ [ ]]]["04"
824(1): (ワッチョイ 9f33-aKZ8) 2018/01/06(土)01:45 ID:oEcDcvUy0(1/2) AAS
>>821
標準コンテナとか含めて new 使ったら bad_alloc 受けることになるんだから
ほとんどの場合に使ってると言えそうなんだけど「継承しますか?」って話に繋がってるってことは
「使う」=自分で例外クラスを定義して使うって話なのかな?
825(3): (ワッチョイ cb75-if4i) 2018/01/06(土)02:11 ID:dYI3l1P40(1/2) AAS
英単語の前後にスペースを挿入するのはこだわり?
826: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ef6f-hL1C) 2018/01/06(土)02:48 ID:mAB25EnJ0(1) AAS
>>825
TeX で英数字からなる語の前後に空白を入れないと単語境界がうまく認識されないという問題があったので、この習慣は広く定着してる。
ただ、 pTeX などでは自動で境界を認識して適切な幅を取るようになっているのでむしろ空白文字を入れるとダメってのもある。
どっちでも上手いこと処理するのもあるし、そのへんごちゃごちゃしてややこしいんだわ。
ウェブブラウザでも物によって幅の取り方が違う。
まあ個人的には、バッドノウハウだという自覚はあるが、 html やプレーンテキストでは英単語の前後には空白を入れた方が見やすいと思う。
827: (ワッチョイ cb75-if4i) 2018/01/06(土)02:53 ID:dYI3l1P40(2/2) AAS
たしかに
828: (ワッチョイ 9f33-aKZ8) 2018/01/06(土)02:59 ID:oEcDcvUy0(2/2) AAS
>>825 外部リンク:www.google.com
829: (アウアウウー Sa8f-672L) 2018/01/06(土)09:05 ID:QqCP9l1Xa(1) AAS
>>824
そうです。c++の本など見ても標準の例外を説明して終わりな事が多いし、しまいにはnoexceptなるキーワードまで出来てるし実際使ってるのかなと。
830(1): (ワッチョイ 0bbb-2A+B) 2018/01/07(日)19:05 ID:8XJu4dlo0(1) AAS
標準の例外はexception&で捕獲できる
ただそれだけのこと
独自定義の例外を標準の例外とは区別したいのなら
exceptionを継承しないという手も当然ある
教条主義にとらわれるやつ=自分の頭で考えないやつは
こういう判断が極度に苦手だ
831: 2018/01/07(日)23:12 AAS
>>825
Linux の日本語ドキュメントの読み書きに慣れてると自然と空白空けちゃうね。
外部リンク[html]:linuxjf.osdn.jp
832: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ef6f-hL1C) 2018/01/08(月)02:30 ID:4mwCF63o0(1) AAS
標準のライブラリがやってることっていうのはだいたいその言語における「普通」なので、
原則としてはそれに合わせるというのは良い方法だよ。
あえて原則に逆らいたいとき、逆らった方が便利なときというのももちろんあるけれど、
たいして強い動機もないのに独自の設計を選択するのは混乱の元。
つまり、例外クラスは std::exception を継承するのが好ましい。
その上でそのデザインが問題を起こす場合があるなら見直せばいい。
833: (ワッチョイ 0b44-5YeV) 2018/01/08(月)03:33 ID:yXJvU4Pj0(1/2) AAS
動的例外がまだ廃止されていない頃に設計されたものが
今のC++に対して本当に「普通」なのか考えたことがあるか?
(別にここで答えなくてよいが)
誤った前提のうえに立つ主張はただの戯れ言で
そうなっていないことは確認してからぬかせ
834(1): (ワッチョイ 0fe8-u9Oh) 2018/01/08(月)04:19 ID:svytTaJl0(1) AAS
std::exceptionを継承しないメリットって何かある?
835: (ワッチョイ 0b44-5YeV) 2018/01/08(月)05:20 ID:yXJvU4Pj0(2/2) AAS
僅か数レスの流れくらい読め
836: (ワッチョイ 1fbd-wtpF) 2018/01/08(月)06:27 ID:scSfOfeH0(1/2) AAS
std::exceptionを継承しないデメリットもようわからん…
std::exceptionは一体何をやっているのや?
std::exceptionを継承しなくとも
throw 1; --> catch (int)で捕捉
throw "Hello World!"; --> catch (const char*)で捕捉
とかやれるようになったのって比較的最近?
837: (ワッチョイ 0f81-k2O/) 2018/01/08(月)06:38 ID:iffK3nmC0(1) AAS
>>834
ないよ
std::exceptionを継承しても独自例外は区別できるし、>>830は反例になってない
std::exceptionを継承しないのは、普通にアンチパターンだからやめたほうがいい
838(1): (ワッチョイ efe7-Ogju) 2018/01/08(月)09:47 ID:mQiTu3iz0(1/2) AAS
クラス以外を投げるのはdeprecatedになってたような…(自信なし)
とはいえstd::exceptionを継承しなければならない強い理由もあんまりないような気がする
JavaのThrowableやらPythonのExceptionやらはGCの都合だし
あくまでstd内の例外を組織化するための基本クラスでしょstd::exceptionって
839: (ワントンキン MMbf-k2O/) 2018/01/08(月)09:53 ID:kEMPsv5+M(1) AAS
>>838
テスティングフレームワークとか、ロギングフレームワークとか魔改造したくないでしょ
おとなしくstd::exception継承しとけ、デメリットが多すぎる
840(1): (ワッチョイ 1fbd-wtpF) 2018/01/08(月)10:38 ID:scSfOfeH0(2/2) AAS
std::exceptionおよびその派生クラスを受け取る標準のロギングフレームワークってありましたっけ…
STLはなんか例外を投げる側しかサポートしていない印象
そもそも例外の捕捉のしくみは「知ってる例外のみ捕捉して処理する/知らない例外はさらに呼び出し元に送る」戦略なので、
受け取る側に既存のフレームワークが無いんなら、投げる側の例外が高度に統一されている必要は実はそんなには無いキモス
せいぜいコピーしたときリークするようなクラスではあってほしくないという願いがあるぐらいで実は何だって良いのでは…
841(1): (ワッチョイ 9f33-aKZ8) 2018/01/08(月)11:10 ID:MwpEdGth0(1) AAS
>>840
「フレームワーク」にあたるかどうかはわかんないけど、
catch(std::exception& e) で e.what() を拾うっていうよくあるエラー処理のパターンがあるんだよ。
外部リンク:github.com
だから、 std::exception 派生にしといてもらわないとまともなエラーメッセージが出なかったりして困る。
842(1): (ワッチョイ 1f5b-5YeV) 2018/01/08(月)14:35 ID:u4QX+fVn0(1/3) AAS
アホか
e.what() を誰に対して表示するんだよ
一般消費者にbad_allocとか言っても通じねえ
せいぜい「何たらファイルを保守員に渡せ」くらいだろ
843: (ワッチョイ 9f34-5fu2) 2018/01/08(月)14:44 ID:zFrH1/Fm0(1/2) AAS
e.what()なんてどうでもいい
どのソースファイルの何行目でそいつがthrowされてきたかだ
844(1): 2018/01/08(月)14:46 AAS
>>842
実際広く使われてるものを一人で一生懸命否定してもな・・・
845: (ワッチョイ 9f34-5fu2) 2018/01/08(月)14:48 ID:zFrH1/Fm0(2/2) AAS
そこら辺が例外としてカスタマーに出す情報として欠けている
巷で言うところのアスペクト機構というやつか
846(1): (ワッチョイ 9f98-TAu9) 2018/01/08(月)15:10 ID:IpW3L+tu0(1) AAS
十進数計算をするためには一般的にはBCDをDPDを使用しますが
二進数のままで十進数の丸め処理をすることはできますか?
847(2): (ワッチョイ 1f5b-5YeV) 2018/01/08(月)15:46 ID:u4QX+fVn0(2/3) AAS
>>844
自分の頭で考えることを放棄しているやつとでは議論にならない
848: 2018/01/08(月)16:18 AAS
>>847
そんなに独自路線を走りたいなら家で大人しく引きこもってろ
849(1): (ワッチョイ efe7-Ogju) 2018/01/08(月)16:30 ID:mQiTu3iz0(2/2) AAS
>>841眺めてるけど
全ての例外オブジェクトはstd::exception派生でなければならないなんてポリシーで書かれてるコードそんなにないぞ
当たり前だけどだいたいcatch(...)も後続させてるし、std::exception派生じゃない独自クラスのcatchを前に続けてるコードも普通にある
というか「catch(std::exception& e) で e.what() を拾うっていうよくあるエラー処理のパターン」って何?
それは単にstd::exceptionを拾ってるだけで、std::exceptionを拾ったらそりゃwhat()使うに決まってんだろ当たり前の話
850: 2018/01/08(月)16:41 AAS
(´・∀・`)ヘェー
あ、ちなみに俺はC++経験ないけど暇つぶしに横から煽ってるだけだから気にしないでね^^
851: (ワッチョイ cb75-rVxj) 2018/01/08(月)16:47 ID:LRSoqKZx0(1/2) AAS
誰もおまえを相手にしてない定期
852: (ワッチョイ 1f5b-5YeV) 2018/01/08(月)17:58 ID:u4QX+fVn0(3/3) AAS
> std::exception 派生にしといてもらわないとまともなエラーメッセージが出なかったりして困る。
まともなエラーメッセージって
cout << runtime_error{"aho"}.what(); //aho
これのことか?www
おまえさんもしかしてsystem_errorが理解できなくて使ってないとかか?
853: (ワッチョイ cb75-rVxj) 2018/01/08(月)20:02 ID:LRSoqKZx0(2/2) AAS
shamu_game?
854: (ワッチョイ fb23-pzyA) 2018/01/08(月)22:00 ID:oHMwX23z0(1) AAS
>>846
固定小数点でやればいい
855: (ワッチョイ 9f33-aKZ8) 2018/01/09(火)02:11 ID:VwLwz+6J0(1) AAS
>>849
後続の catch(...) で拾っても何が起こったのがわかんなくて困ることがあるって話。
856: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ef6f-hL1C) 2018/01/09(火)02:22 ID:ODJfN40E0(1) AAS
>>847
カスが考えるより、 C++ の (ライブラリ) 設計を真似た方がマシやで
857(1): (ワッチョイ 0bf6-5YeV) 2018/01/09(火)10:16 ID:BapSTNU/0(1) AAS
おまえが考えるより真似た方がマシなのは言われんでもわかってる
858: (ワッチョイ fb23-pzyA) 2018/01/09(火)10:43 ID:2HziowuR0(1) AAS
バカの考え休むに似たりなる諺の発祥を追うような展開
859: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ef6f-hL1C) 2018/01/10(水)23:37 ID:pm7ONPKS0(1) AAS
>>857
せやろ。 だから真似るんや。
860(3): (ワッチョイ 1e8a-zuLH) 2018/01/11(木)06:31 ID:hO0Nh6Zo0(1) AAS
ファイルコピーをしたいんだけど改善点あるかな?
引数にはコピー元とコピー先のファイルパスを受けとる予定
もっと簡単な記法があると助かる...
int copy(const char* old, const char* new)
{
FILE *fi, *fo;
int ch;
if(NULL==old||NULL==new){
return -1;
}
省14
861(1): (ワッチョイ 5922-UJUP) 2018/01/11(木)06:46 ID:S67tZ9jk0(1/4) AAS
関数仮引数を動的検査している
終了ステートが負論理
system_errorを使っていない
C++なのにfopen
862: (ワッチョイ ea34-yppE) 2018/01/11(木)06:55 ID:bQ6Hme0D0(1/3) AAS
fpucとfgetcの繰り返しは短いファイルなら良いけど長いファイルだとCPU時間やたら食うだけのクソになるな
863(1): (ドコグロ MM12-J7fK) 2018/01/11(木)07:06 ID:W1ryMExAM(1/2) AAS
>>860
改善点以前にコンパイルできるコードを持ってこいよ...
> if ((fo = fopen(argv[2], "w")) == NULL) {
あと文字単位のコピーは非効率だからせめて fread/fwrite にすべき
また使える環境ならstd::filesystem::copyとかを使った方がいい
外部リンク:en.cppreference.com
864: (スプッッ Sd0a-zuLH) 2018/01/11(木)07:23 ID:1qlx+5WGd(1/2) AAS
>>863
おお...気付かんかった
C++なのにCで書いてあるからそもそもだめだったか...
fread/fwriteでまず考えてみます
FileCopyみたいなの欲しい
865(1): (スプッッ Sd0a-zuLH) 2018/01/11(木)07:33 ID:1qlx+5WGd(2/2) AAS
freadを考えてみたけどファイルサイズ不明な場合一度に読み込むバッファサイズとかどうなるん?
866: (ワッチョイ 6a12-0PCX) 2018/01/11(木)08:03 ID:Nwq/3BKy0(1) AAS
各マシンでの最適なバッファサイズを逐一計算して求めるのがC++
867: (ドコグロ MM12-J7fK) 2018/01/11(木)08:10 ID:W1ryMExAM(2/2) AAS
>>865
環境わからんからなんとも言えんが10KB程度とっときゃいいんじゃね?
868(1): (ワッチョイ a59e-/QpA) 2018/01/11(木)09:08 ID:lNcIwFA20(1) AAS
>>861
>関数仮引数を動的検査している
解説お願いします
>終了ステートが負論理
ダメですか?
>system_errorを使っていない
ダメですか?
>C++なのにfopen
ダメですか?
869: (ワッチョイ 4923-v0zr) 2018/01/11(木)09:58 ID:3a3jMnur0(1/2) AAS
>>860
fopen の引数は “rb” “wb” にしておくのが一般的
もし実用品として使うならなるべく大きな単位、
最低でも1Mバイト程度はまとめて読み書きすると良いよ。100Mでもいい。
細かい単位で読んで書いてを行うとHDDで大きなファイルを処理する場合とてつもなく遅くなる。
あとそういう書き方をしたいならそれは c++ ではなく
c のスレ(あるのか知らんが)で聞く内容だと思う
870: (ワッチョイ 5922-UJUP) 2018/01/11(木)10:03 ID:S67tZ9jk0(2/4) AAS
>>868
不勉強を恥じろボケ
#include <filesystem>
#include <iostream>
auto copy(char const* src, char const* dst)
{
try
{
return std::filesystem::copy_file(src, dst);
}
省6
871: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e6f-QpsD) 2018/01/11(木)10:19 ID:jbhd+X3/0(1/2) AAS
filesystem がまだ使えない環境もあるかもしれんので小ネタを披露しておくと、
rdbuf を使う方法があるんや。
ifstream in(src);
ostream out(dst);
out << in.rdbuf();
みたいな要領な。 エラー処理は適宜うまいことやってくれ。
872: (ワッチョイ 4923-v0zr) 2018/01/11(木)11:19 ID:3a3jMnur0(2/2) AAS
パフォーマンス厨だが
もし実用するなら setvbuf の rdbuf 版みたいなのがあるからそれも呼ぶべきと一言
873(1): 2018/01/11(木)12:15 AAS
system("cp -f a.txt b.txt") でいいよね(´・ω・`)
874: (スップ Sd0a-iyAC) 2018/01/11(木)13:09 ID:EPrc03FTd(1) AAS
パフォーマンス厨なら
リードとライトは別スレッドにするとか
読み書きサイズをクラスタサイズの倍数にするとか
875: (ワッチョイ 7db3-JQPx) 2018/01/11(木)13:20 ID:eUOyd8Rr0(1) AAS
物理的に別のデバイスならリード/ライトは別スレッドで回したほうが速いだろうが、同じデバイスだとシングルスレッドでも大差ないだろうな
あとはバッファサイズをできるだけ大きく取って、IOの発行数を抑えるのが王道かな
876(1): (ワッチョイ 118a-QzTo) 2018/01/11(木)14:07 ID:VjH1J6HL0(1/4) AAS
>>860
fgetc、fputc?笑っちゃうくらいのダメダメ
俺の部下が万が一こんなコード書いてたらもう二度とそいつには仕事回さない
877(1): (アウアウカー Sa55-EKU2) 2018/01/11(木)14:43 ID:EDmjquO+a(1) AAS
プログラミングなんてどっかからコード引っ張って書けば一切手を汚すことなくできるのに何偉そうに言ってんだか...
英語読めないからって海外の文献を参考にせず自分で作ろうとする日本人の無駄な努力には呆れるよ
アメリカ「アホだから」
韓国「レベル低いな」
インド「アジアの恥さらし」って思われてそう
878(1): (アウアウカー Sa55-EKU2) 2018/01/11(木)14:48 ID:xUZeJB/aa(1) AAS
必死こいてコード書いてるやつ見ると情けない
世界65億人130カ国!
お前の書いてるコードがまさか地球上にないものだと思ってんの?
プログラマーの端くれが、そりゃトップで活躍するプログラマーなら常に新しいものを求めてるから生き残るけど...
それ未満は10年後にはAI、またはコード共有化が進んで消えた職業になっているだろうね
悲しいけど現実見てくれ
879: (ワッチョイ 5922-UJUP) 2018/01/11(木)15:17 ID:S67tZ9jk0(3/4) AAS
構ってちゃんが必死で連投してるな
著作権だの互換性だのと縁のない幸せ者だな
880(1): (ドコグロ MM0a-5dQQ) 2018/01/11(木)15:32 ID:deNLSlJUM(1) AAS
>>876
バカにするなら模範コードぐらい書いてやれよ。
881(1): (ワッチョイ ea34-yppE) 2018/01/11(木)16:16 ID:bQ6Hme0D0(2/3) AAS
テストしてないけど
const size_t BUF_SZ=8192;
char buf[BUF_SZ];
while(!feof(fi)){
size_t n=fread(buf,sizeof char,BUF_SZ,fi);
if(n&&n!=fwrite(buf,sizeof char,n,fo)) {perror("ディスクエラー");return -1;}
}
>>873
WindowsならSHFileOperationかな?
windowsでsystem叩くのは文字数制限とか""のくくり方とか微妙に怪しくてなんか嫌なんよね
882: ◆QZaw55cn4c (ワッチョイ 4a60-cexj) 2018/01/11(木)16:40 ID:P2yp909q0(1) AAS
お題:2chスレ:tech
回答
2chスレ:tech
2chスレ:tech
外部リンク:ideone.com
while (bytesDataNum > 0) {
int n;
fin.read((char *)&buffer, std::min(N, bytesDataNum));
if (fin.fail())
return 0;
省10
883: (ワッチョイ ea34-yppE) 2018/01/11(木)17:11 ID:bQ6Hme0D0(3/3) AAS
せやね。エラーチェックは難しいのう。
const size_t BUF_SZ=8192;
char buf[BUF_SZ];
while(!feof(fi)){
size_t n=fread(buf,sizeof char,BUF_SZ,fi);
if(!n) {perror("ディスク読み込みエラー");return -1;}
if(n!=fwrite(buf,sizeof char,n,fo)) {perror("ディスク書き込みエラー");return -1;}
}
884(1): (ワッチョイ 118a-QzTo) 2018/01/11(木)17:32 ID:VjH1J6HL0(2/4) AAS
>>880
さてそんなこと言われてもプラットフォームすら指定されていないし
例えばWindowsなら↓一発で済む話だよな
外部リンク[aspx]:msdn.microsoft.com
ファイルコピーごときに自前でコードなんか書いてられるかよ
885(1): (ワッチョイ 5922-UJUP) 2018/01/11(木)17:55 ID:S67tZ9jk0(4/4) AAS
ISO/IEC14882の現行規格を差し置いて何を今さら。。。
Windowsなら純正コンパイラが対応しているだろうが
886(1): (ワッチョイ 39eb-0PCX) 2018/01/11(木)17:57 ID:zx3yce6m0(1) AAS
ニートが部下がどうのこうの言ってて笑える
887: (ワッチョイ 118a-QzTo) 2018/01/11(木)18:03 ID:VjH1J6HL0(3/4) AAS
>>886
お前の境遇はよく分かったから勝手に笑っとけ
888: (ワッチョイ 9ee7-5dQQ) 2018/01/11(木)19:35 ID:ga/Vikbp0(1) AAS
>>885 >>884
C++17はともかく、boost::filesystemあたりが妥当だろうな。
889(1): (ワッチョイ 118a-QzTo) 2018/01/11(木)19:49 ID:VjH1J6HL0(4/4) AAS
boost依存は出来る限り避けたいなあ
890: 2018/01/11(木)21:10 AAS
またこの荒らしか
Pythonのスレにも居たな
891: 2018/01/11(木)21:11 AAS
>>877
>>878
宛てな
892: (ワッチョイ f17f-XFrZ) 2018/01/11(木)21:40 ID:x0MoCwhB0(1) AAS
とりあえずだ、fcloseの戻り値判定してないのも誰かつっこんでやれよ。。。
普段気にするところじゃないけど、わりと重要だよな?書き込み系のclose処理
893: (スプッッ Sdea-v0zr) 2018/01/11(木)22:01 ID:qoSoxo2Ld(1) AAS
バッファサイズ8kだと少し大きなファイルコピーすると結構遅くなるよ
書き込み側はOSのキャッシュが効くからそうはならんだろうけど
メモリはいっぱいあるんだし動的確保でもして一気に128Mくらい行くべし
>>889
簡単な処理はあまり外部依存しないコードにしたいよね
894(1): (ブーイモ MM8e-TSXj) 2018/01/11(木)22:07 ID:1W7yBpCQM(1/2) AAS
関数のconst参照引数って
コピーが重い方だと意味あるけど
intとかsize_tとかだと全く意味ないの?
895(1): 2018/01/11(木)22:18 AAS
>>894
どっちが軽いか考えてみればいいじゃん
(1) 常に8バイトの数値(アドレス)を引数として渡すためにコピーして、呼び出された関数側でそのアドレスから値をコピーして、処理に使う
(2) 1〜8バイトの数値を引数として渡すためにコピーして、呼び出された関数側でその値を処理に使う
896(1): (ブーイモ MM8e-TSXj) 2018/01/11(木)22:39 ID:1W7yBpCQM(2/2) AAS
>>895
あーなるほど
どこかの入門サイトで参照は変数の名前の置き換えって見たから
コンパイル時に置き換わるもんだと思ってた
中身はアドレスなのね
897: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e6f-QpsD) 2018/01/11(木)23:12 ID:jbhd+X3/0(2/2) AAS
>>896
内実としては参照はデリファレンスが自動化されたポインタと思ってもさしつかえないと思う。
ABI レベルで見ればポインタと互換性が有りさえするアーキテクチャも有る。 (言語仕様で保証しているわけではない。)
898: (ワッチョイ 2a98-aOXM) 2018/01/12(金)07:31 ID:uquo2DHh0(1/3) AAS
はちみつ餃子はc++とscheme以外に何が使えるの?
899(1): はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e6f-QpsD) 2018/01/12(金)07:51 ID:UAqgHqOi0(1) AAS
そんなこと知ってどうするんや
900: (ワッチョイ 2a98-aOXM) 2018/01/12(金)07:54 ID:uquo2DHh0(2/3) AAS
好奇心ですよ好奇心
901: (ワッチョイ 39eb-0PCX) 2018/01/12(金)07:54 ID:xirJS+K20(1) AAS
マウント取りに行くんだろ
902: (ワッチョイ 2a98-aOXM) 2018/01/12(金)07:56 ID:uquo2DHh0(3/3) AAS
そんなに悪いかよ
じゃあ結構です
903: 2018/01/12(金)08:14 AAS
>>899
恥ずかしガンなって
904: (ワッチョイ 8ae7-0PCX) 2018/01/12(金)22:48 ID:bn5FfgmT0(1) AAS
メンバがint2つくらいだとコピー渡しにするか参照渡しにするかちょっと悩む
int4つくらいまでならキャッシュの関係でコピーのほうが早いとか聞いたことあるけど本当なのかね
905(1): (ワッチョイ 3d7f-QpsD) 2018/01/12(金)22:50 ID:iYjzTsi20(1) AAS
FF15ではベクトルクラスはコピーにしたら劇的に早くなったと言っていた
906: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e6f-QpsD) 2018/01/13(土)01:03 ID:SxvD86sf0(1) AAS
ゲーム機は尖ったアーキテクチャだったりするから……。
やってみないとわからん。
907: (ワッチョイ 7db3-KClg) 2018/01/13(土)11:47 ID:ARtU5FzH0(1) AAS
いやゲーム屋なら当たり前の話だよ
IntelのCPUだってSSEあるし、__m128は出来るだけ値渡しした方がいいはず
(もちろんインライン展開された場合は除く
908(1): (ワッチョイ b5b3-QpsD) 2018/01/13(土)12:22 ID:nudx6UkM0(1/2) AAS
>>905
ソース教えて欲しい
909(1): (ワッチョイ 3d7f-QpsD) 2018/01/13(土)12:24 ID:A7bueCBw0(1) AAS
>>908
外部リンク:jp.gamesindustry.biz
910: (ワッチョイ b5b3-QpsD) 2018/01/13(土)12:34 ID:nudx6UkM0(2/2) AAS
>>909
ありがとうございます
911: (ワッチョイ 8abd-kJSF) 2018/01/13(土)13:06 ID:jbKISc2y0(1) AAS
インライン展開されたら値渡しだろうが参照渡しだろうが(あんま)関係無いんじゃ…
※ 参照と不十分なインライン展開が重なったときmemory aliasingによる最適化の阻害の危険性がちょっと増すぐらい
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.288s*