- 1 名前:デフォルトの名無しさん mailto:sage [2021/11/15(月) 18:49:18.44 ID:I69rZ/Of.net]
- 前スレ
C++相談室 part157 https://mevius.5ch.net/test/read.cgi/tech/1628474251/
- 448 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 11:49:32.57 ID:LVF1I4ij.net]
- 確認してみた。
$ gcc -x c++ -S - -o - <<EOF | sed -n '/^main:/,$p;/\$2/q' int main() { int a = 1; int& r = a; r = 2; return a; } EOF main: .LFB0: .cfi_startproc endbr64 pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 subq $32, %rsp movq %fs:40, %rax movq %rax, -8(%rbp) xorl %eax, %eax movl $1, -20(%rbp) leaq -20(%rbp), %rax movq %rax, -16(%rbp) movq -16(%rbp), %rax movl $2, (%rax)
- 449 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 12:07:37.09 ID:IpG9nRdD.net]
- 参照先が見えてるところでは
参照先へ直にアクセスしてコストゼロだったり 参照引数をとる関数でもインライン化された場合はゼロ てなことがなければポインタ1個分
- 450 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 12:13:52.79 ID:LVF1I4ij.net]
- そういうのは最適化なので無関係
$ gcc -O3 -x c++ -S - -o - <<EOF | sed -n '/^main:/,$p;/ret/q' int main() { int a = 1; int& r = a; r = 2; return a; } EOF main: .LFB0: .cfi_startproc endbr64 movl $2, %eax ret
- 451 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 21:41:58.49 ID:c8hM8/Kk.net]
- 最適化する前の意味合いとして
ポインタ1個分のコストを必ず発生するという規定なんかあったか?
- 452 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 21:44:15.52 ID:LVF1I4ij.net]
- 誰もそんな話はしてないので、お前が調べて貼れ
- 453 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 22:11:35.36 ID:c8hM8/Kk.net]
- 444へのレスで最適化がどうたらぬかしといて
そんな話はしてない、かよ アセンブラ貼ってた威勢はどこへ吹っ飛んだんだかw いいよ、逃げたきゃ逃がしてやるよヘタレ野郎
- 454 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 22:16:05.29 ID:LVF1I4ij.net]
- 最初から処理系(gcc)の話しかしてない。規定の話をしてるのはお前だけだ。早く貼れ。逃げるな。
- 455 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 23:16:36.18 ID:TszysAyf.net]
- unique_ptrオブジェクトとそ
- 456 名前:フ実体を参照する参照型を使えば、
スタック消費を抑えつつスタック変数を使っているかのようなソースコードが書けそうだけど [] - [ここ壊れてます]
- 457 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 00:06:02.44 ID:Ug1txKhz.net]
- それは全くレイヤーの違う話
アプリのコンテキストを構造体/クラスにしてヒープかスタティックに置くだけで実現できる 実現手段としてunique_ptrを使いたいなら使えばいいというだけ
- 458 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 00:10:51.14 ID:QziEyx5H.net]
- >>451
ひょっとして ID:c8hM8/Kk かな? 無意味な煽り書き込みやめてくれ
- 459 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 00:20:05.56 ID:Ug1txKhz.net]
- 煽りではないんだが、俺はID:LVF1I4ij
- 460 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 00:33:36.24 ID:QziEyx5H.net]
- >>453
レイヤーが違うとか、勝手に仕切るな
- 461 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 00:42:51.31 ID:QziEyx5H.net]
- 構造体/クラスをヒープに置いたところで、その構造体/クラスのメンバー関数でスタック変数を使ってたら意味がないだろ
何が問題提起されているのか理解してから書き込んでくれ
- 462 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 01:02:00.74 ID:Ug1txKhz.net]
- スタック消費を抑えたいなら静的に確保するかヒープを使えばいいというだけの話でしょ。
struct app_context {int x;}; void func_old() { int x = 0; } void func_new(app_context* ctx) { ctx->x = 0; } int main() { auto ctx = new app_context(); func_old(); func_new(ctx); delete ctx; return 0; } 各関数/メソッド単位で細かくしたいなら、try〜catchでやってもいいし、スマートポインタを実装・流用してもいい。その際にunique_ptrを使いたいなら使えばいいというだけ。 伝わらないようなので少し細かく書いた。伝わるんだろうか・・・。
- 463 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 01:16:14.39 ID:QziEyx5H.net]
- >>456
君は回答者に向いてない
- 464 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 01:18:02.55 ID:QziEyx5H.net]
- アムロの父親みたいな変な書き込み、リアルに遭遇するとやはり引く
- 465 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 01:18:43.76 ID:Ug1txKhz.net]
- >>457
質問したいレイヤと解決策のレイヤが合ってないだけw
- 466 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 01:27:03.87 ID:QziEyx5H.net]
- 自覚なさそうなところがますますテム・レイ感あるわ
お大事に
- 467 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 01:46:16.28 ID:Ug1txKhz.net]
- 質問して複数人に回答してもらってるのに、ただ煽るだけの人に「自覚」とやらを問われてもねw
大好きなガンダムのたとえに勝手に満足して病んでてくれ 君にプログラミングは向いてない
- 468 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 01:50:07.69 ID:QziEyx5H.net]
- 今時特別な理由もなくnew演算子を使うC++プログラマは間違いなく無能だよ
- 469 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 01:53:35.52 ID:Ug1txKhz.net]
- 理由はC++標準ライブラリを使用しない言語/処理系レベルの話をしていたから
- 470 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 02:05:33.42 ID:QziEyx5H.net]
- ガンダムの記憶回路にとりつけるやつ好きなだけ作ってていいぞ
- 471 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 02:17:40.01 ID:Ug1txKhz.net]
- 妄想の中でもニュータイプじゃない君にプログラミングは無理w
ガンダムに辿り着けずコロニー内で果てる
- 472 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 14:30:10.99 ID:bvwR7M/G.net]
- テンプレートを引数に取る関数で、
その入力として、vectorと配列を取るような関数で、いい書き方ってないですかね? // vector向け template<class T>int sum(const T& v, int size) { int acc = 0; for(int i = 0 ; i < size ; i++){acc+=v[i];} return acc; } 内容同じなのに配列向けに template<class T>int sum(const T* v, int size) を作ってるけど一緒に表記できないかな、みたいな
- 473 名前:はちみつ餃子 mailto:sage [2021/12/21(火) 15:12:48.55 ID:f1yxmqA1.net]
- >>466
??? その定義で配列も受け取れるけど。 int main(void) { int x[] = {1, 2, 3}; std::cout << sum(x, 3) << std::endl; }
- 474 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 15:20:59.50 ID:Ug1txKhz.net]
- vectorならiteratorにしてもいいと思う
#include <vector> #include <iostream> using namespace std; template<class T>int sum(const T begin, const T end) { int acc = 0; for(T i = begin; i != end; ++i){acc+=*i;} return acc; } int main() { int a[] = {1,2,3}; const size_t s = sizeof(a)/sizeof(a[0]); vector<int> v(a, a + s); cout << sum(a, a + s - 1) << endl; cout << sum(v.begin(), v.begin() + (v.size() - 1)) << endl; return 0; }
- 475 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 15:35:03.48 ID:bvwR7M/G.net]
- ありがとうございます
>>467 頭のどこかでポインタにしないと取れないと思っていました >>468 iteratorは馴染みがないのでそのコードで勉強させていただきます
- 476 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 15:39:21.19 ID:sStr75A4.net]
- >>462
ただのサンプルコードに今時とか無能とか・・ 中で何が起きるか把握してない無能を量産しようとしないでくれ
- 477 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 15:47:15.24 ID:msz2/cZB.net]
- 本来はrangeの出番なんだがな
導入が遅れたばかりに……
- 478 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 16:45:50.91 ID:fi3Z01x+.net]
- #include <iostream>
#include <vector> #include <array> #include <string> using namespace std; template<typename Iter> auto sum(Iter a, Iter b) { using value_type = remove_const_t<remove_reference_t<decltype(*a)>>; value_type acc {}; while (a != b) acc += *a++; return acc; } int main() { const int a[] { 1, 2, 3 }; vector<int> v { 4, 5, 6 }; array<double, 3> d { 3.5, 1.2, 0.9 }; const string s[] { "u", "n" "k", "o" }; cout << sum(begin(a), end(a)) << endl; cout << sum(begin(v), end(v)) << endl; cout << sum(begin(d), end(d)) << endl; cout << sum(begin(s), end(s)) << endl; return 0; }
- 479 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 16:51:06.96 ID:msz2/cZB.net]
- std::iterator_traits使おうよ
- 480 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 16:56:11.01 ID:fi3Z01x+.net]
- #include <iostream>
#include <vector> #include <array> #include <string> #include <iterator> using namespace std; template<typename Iter> auto sum(Iter a, Iter b) { using value_type = typename iterator_traits<Iter>::value_type; value_type acc {}; while (a != b) acc += *a++; return acc; } int main() { const int a[] { 1, 2, 3 }; vector<int> v { 4, 5, 6 }; array<double, 3> d { 3.5, 1.2, 0.9 }; const string s[] { "u", "n" "k", "o" }; cout << sum(begin(a), end(a)) << endl; cout << sum(begin(v), end(v)) << endl; cout << sum(begin(d), end(d)) << endl; cout << sum(begin(s), end(s)) << endl; return 0; }
- 481 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 17:32:40.16 ID:Ug1txKhz.net]
- sumがunkoは独創的だと思うけど、戻り値の型はテンプレート引数でいいかもね
- 482 名前:sage [2021/12/21(火) 18:15:52.03 ID:qDHWQ1/Y.net]
- ↓こんなコード書いてるんですが,もっとエレガントに代入できませんか?
a[0]=*ptr; a[1]=*(ptr+1); a[2]=*(ptr+2);
- 483 名前:蟻人間 mailto:sage [2021/12/21(火) 18:28:20.41 ID:NT9maPPc.net]
- ptr[1]
- 484 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 19:09:14.75 ID:qDHWQ1/Y.net]
- >>477
エレガントな回答ありがとうございます. 解決しました.
- 485 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 20:23:30.29 ID:iHW7b2cO.net]
- std::copy(ptr, ptr + 3, a);
僕はfor文のほうが好きです
- 486 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 20:25:38.21 ID:UPYLxpzi.net]
- C++98以前の化石
- 487 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 21:03:47.64 ID:msz2/cZB.net]
- std::copy_nもあるぞ
- 488 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 18:49:46.59 ID:ycAkB2VB.net]
- >>479
>>481 こんなんもあるんですね.使わせてもらいます.ありがとうございました. 最近c++やり始めたんですが,ポインタが出てくるとギョッとします.
- 489 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 19:44:38.16 ID:VkqlmauA.net]
- 何に使いたいのか知らないけど、C++やめてRustの方がいいんじゃないの?
- 490 名前:デフォルトの名無しさん [2021/12/22(水) 20:00:31.77 ID:j6Uulo2p.net]
- 高速grepツールとして有名なripgrepはRustで作られてるからRustは優れた言語なのだろう、ぐらいなことは察せられるが
- 491 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 08:08:59.49 ID:zbE03cOE.net]
- >>483
rustなんてプログラム初級者に勧めるなよ。 あんなの習熟した上級者向けの言語だわ。c++以上に初級者向け解説が無いのは致命的。 あと、Rustはスレ違いだからな。このコメにもレスするなよ。
- 492 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 09:13:28.05 ID:cFIeneRn.net]
- >>485
C++の方が難しいよ ポインタでギョッとするレベル=Cに抵抗があるなら、わざわざC++を使うよりはRustでいい 5chはコメとは言わない お前がレスしなければ良かっただけ
- 493 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 09:43:11.86 ID:TuHGjVDJ.net]
- Rust は良いアプローチだがどうしても記述量が多くなるから敬遠してる
- 494 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 11:51:22.33 ID:Gjq2t2pD.net]
- >>486
ポインタは名札のメタファーを使った説明が確立しているけど、所有権、譲渡、借用、ライフタイムの初心者向け説明はクソみたいのしか無いだろ。そんなもん初級者に紹介するなよ。 スレ違いでわざわざ役立たずを紹介するやつは何を考えているんだろうかね?
- 495 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 12:29:11.30 ID:cFIeneRn.net]
- >>488
はいはい、ID変えてご苦労さま 同じことだけど、生アドレス使うの得意でない言語の方が向いてるだろってだけ C++は少なくともCをまともに使えるようになってから習得すべき
- 496 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 12:33:21.82 ID:lsirm1I0.net]
- .hや.cpp以外からいじられたくない変数に対するインライン関数をパブリックに公開したいのですが、classを利用する以外にこのような事はできないのでしょうか?
staticや無名名前空間を利用するとcppファイルで利用できなくなりますしやはりclassを使えということでしょうか? extern int value; //これは隠蔽したい inline bool IsZero() { return value == 0; } //これはグローバルに利用してもらいたい
- 497 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 12:43:43.47 ID:N07J633j.net]
- namespace {
extern int value; //これは隠蔽したい } inline bool IsZero() { return value == 0; } //これはグローバルに利用してもらいたい
- 498 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 12:44:08.09 ID:IRDqWaPI.net]
- >>489
ならc紹介しろよ。 スレ違いのクソを紹介するな。
- 499 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 12:44:27.15 ID:N07J633j.net]
- もとい
namespace { int value; //これは隠蔽したい } inline bool IsZero() { return value == 0; } //これはグローバルに利用してもらいたい
- 500 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 12:47:57.55 ID:IRDqWaPI.net]
- >>493
関数内にstatic変数持てなかったっけ?
- 501 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 12:52:37.53 ID:IRDqWaPI.net]
- >>494
連投失礼。 自身の関数内にあるstatic変数の参照を返す関数を用意するパターン無かったっけ?
- 502 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 12:58:20.57 ID:cFIeneRn.net]
- >>492
ポインタに抵抗ある人にCを勧めるくらいならC++に近くて安全なRustを勧めるのが筋 見当違いな話をしてるだけだよ君は
- 503 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 12:59:07.12 ID:6GqfEn2+.net]
- valueの立ち位置が気になるが
extern(実行ファイル内で全部共通)するならinline関数のIsZeroが見えた時点でvalueも見えてないといけない
- 504 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 13:03:49.15 ID:cFIeneRn.net]
- class hoge {
static int value; public: static bool IsZero() { return value == 0; } }; inline bool IsZero() { hoge::IsZero(); } int main() { return IsZero(); }
- 505 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 13:07:02.43 ID:lsirm1I0.net]
- >>493
ありがとうございます ヘッダにそれを書いたとしてcppファイルからvalueを扱えるのでしょうか? >>497 JavaやC#で言うところのprivate static intとして該当ヘッダ内&cppファイル内からは自由に扱え、それ以外からは見えなくさせたいという値です
- 506 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 13:20:56.47 ID:cFIeneRn.net]
- JavaやC#でもそんなところに可視性の定義はない。
- 507 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 17:32:16.18 ID:SEEFcByD.net]
- >>496
相手がなんでc++を使っているのかのニーズすら確認しないで何を独りよがりなことを言っているんだよ。 相手の目的を無視してスレ違いのツールを薦めるのはアホのやること。 Rustの伝道師はこんな低レベルなのかね。
- 508 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 17:36:54.99 ID:N07J633j.net]
- あーうるせえ
C++スレでRust Rust連呼すんな 寒すぎんだよ
- 509 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 18:02:45.75 ID:cFIeneRn.net]
- >>501
別に俺はRustの伝道師ではないが、>>483で一言Rustを勧めたらIDをコロコロ変えながら文句を言ってくる人がいるだけ ポインタが不得意でRustも使えない質問者ご本人様だと思ってる
- 510 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 19:12:55.62 ID:AUfS9hAV.net]
- >>493
試してないけどこんなのはどうかね。 #include <iostream> #include <cstdlib> class Accesser; class Wall { static int & val(){ static int v; return v; }; friend Accesser; }; class Accesser { public: Accesser(){ int &v=Wall::val(); v=1; } ~Accesser(){ std::cout << Wall::val()<< std::endl; } }; int main() { Accesser a; std::cout << "Hello, Wandbox!" << std::endl; }
- 511 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 19:32:24.95 ID:3yOXD4ws.net]
- inlineで書きたいらしいので、それだとコンパイル単位で値が変わっちゃうのでは?
- 512 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 19:55:38.05 ID:CLdJLYY1.net]
- >>505
インラインはどのみち無理じゃない? 関数内static変数は共通になる保証があったと思う。どこだか忘れたけど。
- 513 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 20:02:52.87 ID:cFIeneRn.net]
- クラス内に実装を書くなどヘッダにあればどの道インラインだと思う
- 514 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 20:05:51.29 ID:cFIeneRn.net]
- staticは静的に確保されるので、インライン展開されても同じシンボルを参照する
- 515 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 20:30:35.89 ID:cFIeneRn.net]
- ちゃんと書いておくと、>>490にもともとクラスを使わない指定があるので、どうかね?
という意味では前提を満たしてないと思う クラスを使う最も素朴な例は>>498に書いておいた
- 516 名前:デフォルトの名無しさん [2021/12/23(木) 21:54:27.28 ID:4lOSoN0i.net]
- メモリ確保用途でvectorやstringつかい
ポインタアクセスすれば、new で確保するのと速度に大差ないとおもうんですが 実測すると10%〜くらいSTLつかうほうが速度低下するみたいなんですが 直メモリアクセスでも落ちるのはなぜなんでしょうか
- 517 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 22:14:02.53 ID:6YhOrdG1.net]
- その計測コード貼ってみ
多分メモリアクセスとは関係ない所で時間食ってる
- 518 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 22:16:19.47 ID:lsirm1I0.net]
- >>509
ありがとうございます やはりクラスを利用しないと実現無理そうなので、498のようなC#で言うところのstatic class的な形でやることにします
- 519 名前:510 [2021/12/23(木) 22:21:06.77 ID:4lOSoN0i.net]
- これです・・・
https://ideone.com/NKSCRi vector : 974.971 ms new char : 921.191 ms new int32 : 899.579 ms
- 520 名前:デフォルトの名無しさん [2021/12/23(木) 22:38:03.27 ID:MjSWMWRR.net]
- 1秒もかかる?
- 521 名前:510 [2021/12/23(木) 22:49:58.53 ID:4lOSoN0i.net]
- こっちだと大差がついてるんですが
家のPCでもideone.comよりも差が付きます vector確保のほうが遅い https://paiza.io/projects/9wWo36-bjTCL_S0WcGbaWA vector : 459.154 ms new char : 184.758 ms new int32 : 167.899 ms
- 522 名前:510 [2021/12/23(木) 22:55:16.12 ID:4lOSoN0i.net]
- 自己解決しました
メモリ確保と解放部分を含めて計測してたのを コピー部分のみの測定にしたらほぼ一緒になりました https://paiza.io/projects/ge5iOWrzGu2E2PjogsRlUw vector : 219.947 ms new char : 204.565 ms new int32 : 214.644 ms
- 523 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 22:55:24.77 ID:6YhOrdG1.net]
- ほとんどメルセンヌツイスタの実行時間じゃね
- 524 名前:デフォルトの名無しさん [2021/12/23(木) 22:56:40.08 ID:MjSWMWRR.net]
- 確保にかかってると思う?
一秒はさすがにないと思う。 何かおかしいな。
- 525 名前:デフォルトの名無しさん [2021/12/23(木) 22:58:15.18 ID:MjSWMWRR.net]
- vector云々以前に、newバージョンも遅すぎると思う。
話にならないくらい。 i8008とかじゃないよね?
- 526 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 23:00:56.66 ID:6GqfEn2+.net]
- C++/CLIでstd::mutex使えないのなんでなん?
頑張ってWin32APIで代用する気力はあるけどわざわざ無効化されてる理由が知りたい
- 527 名前:510 [2021/12/23(木) 23:05:52.89 ID:4lOSoN0i.net]
- メモリ確保・解放と、メルセンヌツイスタを外して計測したら
今度はvectorのほうが圧倒的に早
- 528 名前:「んですが
https://ideone.com/rKv4qv vector : 237.55 ms new int32 : 713.82 ms [] - [ここ壊れてます]
- 529 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 23:26:56.25 ID:4lOSoN0i.net]
- 計測時間は、ある程度の長さで、オンライン実行環境のタイムアウトにならないように
ループ回数を変更してるので
- 530 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 23:54:08.59 ID:58w1xOUi.net]
- 生ポインタにしたら同じ感じにならない?
unique_ptr<int32_t[]> p(new int32_t[2*size]); int32_t* A = p.get(); mmcpy(A, size);
- 531 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 01:54:49.07 ID:T9e6TA98.net]
- 手動でループ回数変更とか馬鹿らしいからquick-bench.comとか使うのオススメ
- 532 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:00:08.27 ID:opQHMY4K.net]
- overrunがある
std::make_uniqueを使え
- 533 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:04:03.38 ID:opQHMY4K.net]
- https://ideone.com/JupGoY
- 534 名前:デフォルトの名無しさん [2021/12/24(金) 09:05:00.82 ID:6d0f054m.net]
- サンプルコードだからと安易にnew演算子使う風潮やめたほうがいい
コールバックや別スレッドに渡すインスタンスの生成にのみnew演算子を使うべき
- 535 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:08:39.52 ID:opQHMY4K.net]
- そういうことではなくunique_ptrを理解してから使えというだけ
- 536 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:09:02.65 ID:6d0f054m.net]
- バッドノウハウがいつまでたってもなくならない原因は入門者向けのサンプルコード
- 537 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:09:36.51 ID:opQHMY4K.net]
- そもそもサンプルコードの質が悪すぎる
- 538 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:10:57.45 ID:opQHMY4K.net]
- 今回のね(>>526)
- 539 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:11:48.94 ID:6d0f054m.net]
- >>528
むしろ「理解してなくても使え」だよ ナマポだってそうだ サティアンとか金目とかじゃなくてな 実際に使って痛い目にあわないと
- 540 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:12:11.50 ID:opQHMY4K.net]
- >>462は壮大な勘違い
- 541 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:13:48.09 ID:opQHMY4K.net]
- >>532
何でもそうだが、理解しないで使うからこういう問題が跡を絶たない 「理解してなくても使え」が何よりも悪い
- 542 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:21:12.05 ID:6d0f054m.net]
- >>534
それは違う 使わなければ理解できないよ 自身が初心者だった頃を思い出せないくらい耄碌したの? お大事に
- 543 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:22:45.08 ID:opQHMY4K.net]
- >>535
俺は初心者の頃から理解できていないものを何となく使うとかはしていない それが何よりも悪いことを教わってきてるから
- 544 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:25:48.61 ID:ZnDQBfvC.net]
- 練習と本番を一緒くたにしてるな
まさに現場の癌だったと自白してるようなものだ
- 545 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:28:20.47 ID:opQHMY4K.net]
- まさにお前がな
- 546 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:30:24.34 ID:opQHMY4K.net]
- コロコロID変わる質問者兼劣悪回答者の荒らしで、そもそも勤務経験なさそう、と思ってるよ
- 547 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:31:16.13 ID:6d0f054m.net]
- >>536
現役離れてずいぶん経つの? 実務やってれば仕様書の文章があいまいで実際に動かさないと理解できないってことがいくらでもあるでしょ 「仕様書はない、ソースのみ(キリッ」という状況なんて普通なはずだが
- 548 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 09:32:13.38 ID:6d0f054m.net]
- 教わるとか受け身かよ、アホかと
学ぶんだろ
|

|