1 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 13:51:53.57 ID:DKQ0QQLH0.net] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part142 https://mevius.5ch.net/test/read.cgi/tech/1554124625/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.105【環境依存OK】 https://mevius.5ch.net/test/read.cgi/tech/1556142878/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) ----- テンプレ ここまで ----- VIPQ2_EXTDAT: default:vvv:1000:512:----: EXT was configured
2 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 16:03:43.75 ID:yU4M2XeV0.net] すっぱい葡萄 ttps://ja.wikipedia.org/wiki/%E3%81%99%E3%81%A3%E3%81%B1%E3%81%84%E8%91%A1%E8%90%84 自分のものにしたくてたまらないにもかかわらず、努力しても到底かなわない対象である場合、 人はその対象を「価値の無いもの」「自分にふさわしくないもの」と見なそうとし、 それをあきらめの理由として納得し、心の平安を得ようとするものである。 フロイトの心理学では、これを防衛機制および合理化の例とする。また、社会心理学においては、認知的不協和の例とされる。 英語には、この寓話を元に生まれた熟語として "sour grapes" があるが、これは「負け惜しみ」を意味する。
3 名前:デフォルトの名無しさん [2019/06/16(日) 12:29:06.82 ID:yEr4r4hL0.net] ttps://qiita.com/hirokidaichi/items/adccebb41f77eaa6132f >Paul曰く: >人は、その人のアイデンティティの一部となっている事について、実りある議論はできない。 >これすなわち、自分のホームに近い話題ほど論理よりも感情が優先されてしまうということ。 >Kathy曰く: >他の人が夢中になるほど、そのプロダクトやブランドへの憎しみは強くなる >これはつまり、彼らはクールエイドを飲んでしまってるということだ。
4 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 16:55:32.05 ID:NJ2skO190.net] 質問です。 https://dotup.org/uploda/dotup.org1873815.zip ここまで作ってデバッグしようとしたらシェアードポインタが継承扱ってくれない感じになった。 2017ではできていた気がしたけど、なぜですか?
5 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 17:32:43.45 ID:/ZY8dphZ0.net] thinkFirst ThinkFirst オーバーライドするときはoverrideつけたら?
6 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 17:36:44.99 ID:NJ2skO190.net] >>5 サンクス。こんなことか・・・。 そういえばそういう習慣持ってないなぁ。余裕があったらやってみる。 コンパイル通ったので再開。 助かりましたありがとう。
7 名前: mailto:sage [2019/06/16(日) 19:27:55.97 ID:gDHKfsB60.net] test
8 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 00:12:48.76 ID:oaY4OAXG0.net] >>1 乙 前スレ>>1000 の人は関数型プログラミング的プログラミングを自らに課している人なのであろう つまり全てのオブジェクトは属性がコンストラクタで設定され、immutable、、、
9 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 00:55:04.38 ID:qMa7jD650.net] getterは読み取り専用のメンバを作りたいときに必要 setterはpimpl化したときに必要
10 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 01:18:11.69 ID:a5RA1dZMa.net] const publicがあればいいのか
11 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 09:36:57.72 ID:FBMbqlks0.net] getterならread only修飾子を導入して コンパイル時に書きこまれないことを保証すればいい かんたんだろ
12 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 09:43:06.17 ID:NDzOpmZcM.net] mutable なオブジェクトだとしても、setter を付けるメンバー変数は少ないな。 3つのうち1つぐらいの感じ。
13 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 14:59:51.76 ID:otIzoLhyd.net] セマンティクス上で重要なメンバ関数の区別は、オブジェクトの内部状態を変更するものか(非constメンバ関数)と、変更せずに内容を見るためのものか(constメンバ関数)の違いであって その具体的な処理内容が特定のprivateデータメンバのgetterかsetterかなんて観点は大して重要じゃないし、そんなものに固執して設計を考えるのは馬鹿馬鹿しいし危険だと思う
14 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 15:13:59.52 ID:NDzOpmZcM.net] >>13 「状態を変更」の方はまあいいけど「内容を見る」という表現は狭すぎないか。
15 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 15:20:09.82 ID:otIzoLhyd.net] そうね引数を加工するとか他のオブジェクトへのプロキシになるとか色々あるね getterのイメージに引きずられすぎちゃった
16 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 15:54:46.05 ID:cgazGIue0.net] コンテナのset, map, multi_mapはconst_iteratorじゃないと正しくforループを回せないって制限あった気がする。どうだっけ?
17 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 16:13:33.58 ID:ikLTlFyV0.net] ペアのインデックサがわを弄ったら、ソートぶっこまれて順番が狂う感じの奴かい?
18 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 17:06:03.61 ID:xa2u5Y3Ua.net] 構造体のメンバ変数をまとめて以下のように文字列でアクセスできるようにしたいのですが、 構造体のポインタを以下のpointerに一括で割り当てる方法はないでしょうか? Params { int param1, param2; } params; std::map<std::string, void*> pointer; // 同じ操作 params.param1 = 1; *static_cast<int*>(pointer["param1"]) = 1;
19 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 17:11:32.29 ID:xa2u5Y3Ua.net] Paramsは複数の型のメンバ変数を持ちますがpointerにtypeidを合わせて持たせることで使用時の問題は解決できます
20 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 17:11:48.82 ID:cgazGIue0.net] >>18 日本語でok
21 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 17:15:04.87 ID:xa2u5Y3Ua.net] 以下のように一つずつ割り当てるのではなく、構造体に含まれるメンバの名前とポインタをイテレートして割り当てたいのです pointer["param1"] = ¶ms.param1; pointer["param2"] = ¶ms.param2;
22 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 17:26:50.49 ID:FBMbqlks0.net] リフレクションすれば早い そうでしょう?
23 名前:デフォルトの名無しさん [2019/06/17(月) 18:55:58.16 ID:8WZxEIm50.net] そこでプロパティ型ですよ。
24 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 21:01:33.96 ID:kTiNst+JM.net] 中身が長ったらしい(と言っても200行程度)ラムダ式ってやめたほうがいいですか? 一般的には普通の関数にするんでしょうがヘッダーに書きたくないんです
25 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 21:09:43.46 ID:Xk2fRyfla.net] その関数に名前がつけれないならいいんじゃない
26 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 21:20:42.23 ID:qMa7jD650.net] ヘッダーに書きたくないって…、cpp内で関数を宣言/定義してもいいんだぞ
27 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 22:03:41.11 ID:cgazGIue0.net] ラムダ式の存在意義は、コンパイラではなく人間にとっての可読性の改善にある。 どうも可読性が低いなぁと思ったら、ラムダ式をやめるべきだね。
28 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 23:09:14.61 ID:W17QvXl10.net] >その関数に名前がつけれないならいいんじゃない 完全にダメなパターンだろ。。
29 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 23:37:37.03 ID:ZwasbMRy0.net] カッコよくラムダで比較関数を書いたものの、あちこちで同じ比較関数が必要になって結局関数オブジェクトを作る不毛な作業
30 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 23:40:11.50 ID:D3j4bHhT0.net] >>21 c++使わないのが正解
31 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 23:44:17.67 ID:DTomrwq60.net] >>29 別にいいじゃない
32 名前:デフォルトの名無しさん [2019/06/17(月) 23:44:34.66 ID:DMQyXySba.net] >>29 わざわざ関数オブジェクト作成するくらいならラムダをauto変数にいれるのはどうですか?
33 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 23:45:22.46 ID:W17QvXl10.net] クロージャの利点っていうのは クラスとメソッドに比べたらアクセスするデータのスコープがわかりやすく渡せるってことだが c++だと同時にデータが処分されるタイミングを考えなきゃならなくて逆にむずい。
34 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 23:49:52.62 ID:x+yzwFNm0.net] 大抵の言語でループ変数をキャプチャするlambdaを配列に入れるとかするとはまるよね c++の場合コピーキャプチャ使えばすむけど、キャプチャ方式指定できない言語だと結構面倒なことになる
35 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 23:56:31.71 ID:kTiNst+JM.net] >>26 そういえばそうでした…そうします >>27 ですよね 初歩的な質問ですいませんでした
36 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 03:06:02.01 ID:0f68xvDd0.net] >>22 リフレクションっていうんですね このサイトのリフレクションの実装を超簡易的に真似してみました 結局一つずつ追加することになりますが扱いやすさは悪くないはず… motchy-usk.blogspot.com/2010/07/blog-post.html https://ideone.com/zc6oHM
37 名前:デフォルトの名無しさん [2019/06/18(火) 06:13:56.61 ID:3nOE2mBA0.net] プログラム板にキチガイ降臨中!botに一晩も反応する異常さ 一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。 https://mevius.5ch.net/test/read.cgi/tech/1559872586/ 142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO >>141 名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、 片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか? 一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
38 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 08:12:45.67 ID:Y0myl0p20.net] BoostのSerializationはいつ標準ライブラリに入るの? もしかしてあまり使われてないの?
39 名前:デフォルトの名無しさん [2019/06/18(火) 19:32:46.11 ID:lBFdU5Sd0.net] 現場で困った早引きできるいい本ってないですかねぇ。今度の現場が初のC++でして
40 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 20:34:17.73 ID:DSQg2zLR0.net] >>39 https://github.com/cplusplus/draft
41 名前:デフォルトの名無しさん [2019/06/19(水) 02:12:33.91 ID:/zwjJHhK0.net] そこでマクロですよ。
42 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 02:37:43.11 ID:0yjsH3hg0.net] >>39 cpprefjp
43 名前:デフォルトの名無しさん [2019/06/19(水) 02:46:18.73 ID:8qBvJS/J0.net] https://postd.cc/embedded-cpp/ >最近のC++のアップデートにより、コンパイラ開発にかかる時間が大いに短縮されました。 これって具体的には何ですか?
44 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 02:46:53.30 ID:G/RPQnNp0.net] 言語仕様系なら「C++11/14 コア言語」??
45 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 02:49:21.59 ID:G/RPQnNp0.net] オートとレジスタが死んだこと?
46 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 03:19:29.65 ID:0DgdOBcz0.net] >>43 GCCのバージョンアップでカスタマイズしやすくなった、とかじゃないの?
47 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 07:16:37.76 ID:h4x/aIUc0.net] >>43 原文は "The pace of compiler development has increased with the recent updates to C++, ..." で、 C++03時代はバグ修正や最適化の向上がメインだったコンパイラ開発が、C++11以降は 大きな機能追加も伴う規格の改定に追いつくためにペースアップした、という感じかと。 改めて訳すとしたら「最近のC++のアップデートに伴ってコンパイラ開発のペースは増しており、〜」ぐらいかな。
48 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 12:07:30.39 ID:52Ph4xCha.net] >>39 ポケットリファレンス ただ次の現場がレガシーC++ならあまり参考にならないだろうけど
49 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 13:56:12.54 ID:20CU6qie0.net] 原文なんて読む必要あるの?
50 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 14:50:44.89 ID:mPuTh16gM.net] 実務で原文読んでたら、一生原文読むだけで終わりそう
51 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 15:09:23.72 ID:hDOeQD4v0.net] 大部分の軍人は銃や刀剣の作り方について深く知る必要はない。
52 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 16:36:38.81 ID:yMqJGQdwM.net] バカな日本語訳や要約を読んで首ひねる暇があれば原文読んだほうが早い
53 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 17:36:22.46 ID:0yjsH3hg0.net] 日本語と同じく速度で英語を読めるようになりたい
54 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 19:14:55.87 ID:hDOeQD4v0.net] >>53 結局のところ、たくさんの単語を覚えるしかない。数は力だよ。
55 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 20:55:08.64 ID:DQACirUv0.net] 昔に比べれば英文なんてそこら中にあるんだから読めばいい。
56 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 21:04:53.64 ID:0Op2NPvz0.net] 引き籠りが毎日ひたすら英語版のwikipediaを読んでいたらいつのまにかとんでもない英語力が
57 名前:デフォルトの名無しさん [2019/06/19(水) 23:14:25.37 ID:hDOeQD4v0.net] 昔は民主主義はどうのこうのとか洗脳じみたreaderしかなかったよな?
58 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 23:58:30.86 ID:pr4rVpx+0.net] C++のスレッドや並行処理でこれ読んどけっていう資料や本などありますか? pthreadはもう使いたくない
59 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 00:00:20.59 ID:nbok5ERN0.net] 今時はstd::thread使えば済むんじゃね
60 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 00:11:04.17 ID:lLho4HyI0.net] えーっと、終わりが明確なものは、std::asyncでスレッド投げればいいと思うよ。
61 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 00:35:57.46 ID:984l1qct0.net] >>58 他の本はしらないが、「Effective Modern C++」には必要なことは書いてある、と思う。
62 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 04:18:30.46 ID:fuxDfWBK0.net] std::asyncって生まれた瞬間にdeprecated送りになってなかったっけ?
63 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 11:45:49.37 ID:M/WWMkF90.net] std::asyncはダメなの?
64 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 12:24:14.76 ID:j9Uc7TedM.net] >>62 なんか別のものと間違えてない?
65 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 14:54:38.04 ID:bgVEzQPq0.net] 11でのasyncの自動でjoinする仕様について 『致命的な問題でありasyncは実用にならない欠陥品。 破壊的変更になっても次の規格で修正すべき』 って声が(一部で)あったんよ(※表現は誇張しております)
66 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 15:21:36.40 ID:M/WWMkF90.net] std::async使ってみましたがstd::launch::async指定すると自動でjoinしますね デストラクタで待ってるんですかね std::launch::defferredを指定するとすぐ返ります 確かに微妙に使いにくいw
67 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 15:52:17.95 ID:lDaMx0VnM.net] 実装依存だから環境によってはスレッド作成すらしてないかも知れない
68 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 16:18:06.15 ID:lLho4HyI0.net] お約束ですね。
69 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 17:57:10.96 ID:BT0cBtynM.net] rust使ったほうが楽
70 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 18:03:13.72 ID:lLho4HyI0.net] コンセプトですよコンセプト。来年に期待しましょう。 unifide call syntaxもその後入ることに期待です。 関数チェインしたいんです! と、唐突に宣伝を始めるなど。
71 名前:デフォルトの名無しさん [2019/06/20(木) 19:15:02.26 ID:EITLfG5y0.net] >>56 不思議なことに、読めるようになると、聞き取れるようにもなるんだよね。 どうしてだろね。 不思議不思議。
72 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 23:00:29.85 ID:H2FAKrDC0.net] 読み書き話すはできるが聞き取れねーんだけど・・・
73 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 00:28:19.29 ID:5xL7WT2l0.net] 読み書きは下手くそでも時間かかってもなんとか通じるからいいけど音声はGoogle翻訳に頼れないのがつら
74 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 00:32:02.14 ID:5mFcIDLA0.net] Youtubeに音声自動翻訳字幕機能ほしいよねw
75 名前:デフォルトの名無しさん [2019/06/21(金) 16:04:18.10 ID:Vcgrp8ZVp.net] 再帰を用いずに、 a0=0 an=( an-1×an-1 )+1 の1〜6を出せ ってやつが全然できないので教えてください。
76 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 16:41:53.38 ID:rC321OP20.net] 意味わからん
77 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 16:49:46.98 ID:vf8hmAK4M.net] 0からループ使えばいいだけじゃないの
78 名前:蟻人間 mailto:sage [2019/06/21(金) 16:52:32.29 ID:uFs7CW+50.net] >>75 #include <stdio.h> int f(int n) { int i, a = 0; for (i = 1; i <= n; ++i) a = a * a + 1; return a; } int main(void) { int i; for (i = 1; i <= 6; ++i) printf("a_%d: %d\n", i, f(i)); return 0; }
79 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 20:41:29.94 ID:9XN8XoXIM.net] >>75 > 再帰を用いずに、 その意図は? 単にスタック使いたくないだけなら最近のコンパイラにまかせりゃ末尾呼出最適化ぐらいはするから気にすんな
80 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 21:07:41.81 ID:G412ZpUw0.net] なんかの課題だろ
81 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 21:12:24.28 ID:o/bRPi0pa.net] 平均値も出せないMath.hはクソだと思う理由 1.エクセル関数で簡単にできちゃう 2.電卓でもできることがプログラムになると煩雑になる 3.平均値を出すのにコードを書き換える手間など
82 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 21:19:00.28 ID:dWgEej/X0.net] 平均値の計算は実は簡単ではない
83 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 21:21:02.30 ID:rC321OP20.net] そもそもmath.hはC言語のライブラリ
84 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 21:29:06.50 ID:5xL7WT2l0.net] そのエクセルの関数の機能や電卓ツールはmath.hを使って作られている
85 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 21:48:48.65 ID:0JVOBbqs0.net] 浮動小数甘く見過ぎ
86 名前:デフォルトの名無しさん [2019/06/22(土) 15:16:07.71 ID:ecTKxvDL0.net] C++コードをC++コンパイラでコンパイルするのと CにトランスパイルしてCコンパイラでコンパイルするのと どっちが性能良いんだろう? トランスパイラの優秀さにもよりそうだが
87 名前:デフォルトの名無しさん mailto:sage [2019/06/22(土) 15:35:26.46 ID:XJUTErWD0.net] CがC++よりハイパフォーマンスという前提がありそうだが、そんなことはない
88 名前:デフォルトの名無しさん mailto:sage [2019/06/22(土) 16:04:32.30 ID:LOXx/aGE0.net] 今時c言語のみのコンパイラなんて見かけないな
89 名前:デフォルトの名無しさん mailto:sage [2019/06/22(土) 16:12:52.94 ID:9zxAgsAB0.net] >>86 いったんトランスパイルを挟むと、C++の元のコードをCで表現できる範囲内のコードに置き換えなきゃならないから、その時点で元のコードのままならなできた最適化のうちの一部はできなくなるだろうし、わざわざ効率の悪いコードに置き換えなきゃならないこともあるだろう。 トランスパイルの方が効率が上がる理由はないと思うよ。
90 名前: mailto:sage [2019/06/22(土) 16:38:05.67 ID:ICCmixle0.net] 現時点で利用可能な C++→C トランスパイラは何ですか?
91 名前:デフォルトの名無しさん mailto:sage [2019/06/22(土) 16:53:56.35 ID:3PgdpjOh0.net] llvm
92 名前:デフォルトの名無しさん [2019/06/22(土) 17:03:11.19 ID:ecTKxvDL0.net] https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/cpp.html C++がCに勝ってる項目があるんだけど信じがたい
93 名前:デフォルトの名無しさん [2019/06/22(土) 17:16:00.48 ID:ecTKxvDL0.net] https://gist.github.com/simonhf/de808e0f8240ef27dac655505c8bf30f#file-result-summary-txt こっちだとJavaにすら負けてる なんなんだろうねベンチマークって
94 名前:デフォルトの名無しさん [2019/06/22(土) 17:19:10.62 ID:ecTKxvDL0.net] blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/ どうやらC++はメモリの確保と解放にコストがかかるから Javaはまとめて大量にヒープをもってプールして使ってくから そこでJavaが勝利する場合があるらしい。 C++もメモリをプールしていちいち確保しないようにすればJavaより速くなる。 しかしいちいちそんな事やってられるか?
95 名前:デフォルトの名無しさん mailto:sage [2019/06/22(土) 17:20:50.35 ID:VTgUFffK0.net] >>89 c++のままでないとできない最適化って何がある?
96 名前: mailto:sage [2019/06/22(土) 17:40:41.59 ID:ICCmixle0.net] >>91 LLVM は C++->C はできないのでは?LLVM のこと、わかってますか?
97 名前: mailto:sage [2019/06/22(土) 17:41:56.82 ID:ICCmixle0.net] >>92 C++ の template は #define の親玉のようなものですから、qsort() とかの間接ポインタ渡しでなんとかするしかない C が不利な場合はあるとおもいますよ
98 名前:デフォルトの名無しさん mailto:sage [2019/06/22(土) 17:55:09.83 ID:VTgUFffK0.net] あとconstexprで事前計算してるのもあるね
99 名前:デフォルトの名無しさん mailto:sage [2019/06/22(土) 18:03:29.07 ID:kVNYu7LP0.net] >>94 allocatorってまさにそのための仕組みなんだけど
100 名前:デフォルトの名無しさん mailto:sage [2019/06/22(土) 18:48:22.39 ID:MmmgKpwaa.net] >>95 具体的にはあげられないけど、現在の文脈においてある前提が成り立つことが分かることによりできる最適化が、 (最適化を除いて)同じ動作となる別のコードに置き換えられることにより、元の文脈での前提条件が成り立つことを断定できなくなり適用できないという状況があるのではないかと思う。
101 名前:デフォルトの名無しさん mailto:sage [2019/06/22(土) 18:58:11.17 ID:3PgdpjOh0.net] >>96 そちらこそllvmをまるで理解していないみたいですね