[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/08 21:46 / Filesize : 235 KB / Number-of Response : 1032
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part148



1 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 20:54:06.26 ID:Nt0XFA2s.net]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part147
https://mevius.5ch.net/test/read.cgi/tech/1576659413/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
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/ (日本語)

911 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 02:03:13.40 ID:MPWqg8uW.net]
new からしてmallocを呼んでる実装が多い気がする。

912 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 02:34:52 ID:yR2k1LO6.net]
そりゃnew用とmalloc用でヒープ別けたら無駄だし

913 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2020/02/16(日) 02:36:27 ID:VK9AAsv4.net]
ヒープからの割り付けをする機会を減らすことで実行速度を上げる工夫はよく聞く話ではあるよな。
ただ、そこまでギリギリのチューニングが必要ってことがあまりないだけで。

914 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 07:37:50.08 ID:Rlzwkt+8.net]
newは最悪値が読めないからなぁ
組込とかシビアなゲームでは使い辛い

915 名前:デフォルトの名無しさん [2020/02/16(日) 08:25:44.50 ID:Yy7z+EdH.net]
具体的な数字が出てるとイメージが湧く。

916 名前:デフォルトの名無しさん [2020/02/16(日) 08:45:53 ID:Yy7z+EdH.net]
170クロックならあんまり気にする必要ないな。

917 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 10:26:07.87 ID:w0IbR+6u.net]
組み込みでc++がそもそもおかしい

918 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:00:34.43 ID:1DEBeg9G.net]
>>887
よっぽどでない限り、AAAゲームでも使われてるよ。

919 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:01:02.59 ID:B02+i8yM.net]
最近では小規模組み込みでもC++を使う事はあります

new / deleteやヒープを無効にしたり
newのみでdelete出来ないようにしたり
なんてこともあります



920 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:03:58.49 ID:+vprjU7s.net]
>>890
視野狭すぎ

921 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:12:03 ID:w0IbR+6u.net]
また馬鹿が無駄に一般化してできるワイ言ってんのか。。相変わらずだな。

922 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:20:41 ID:+vprjU7s.net]
日本語でおk

923 名前:デフォルトの名無しさん [2020/02/16(日) 11:23:16 ID:Yy7z+EdH.net]
ストリームってなんで遅いんだろね。

924 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:39:47 ID:Rlzwkt+8.net]
>>891
そりゃそういう例もあるわな
だから何?w

925 名前:デフォルトの名無しさん [2020/02/16(日) 11:42:38 ID:Yy7z+EdH.net]
スレで、do{}while()はダメっぽいこと書いてあったけど、なんでダメなの?

926 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 12:30:30 ID:q7JzY0gs.net]
>>887
でもお前は組み込みにもゲーム開発にも携わってないじゃん

927 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 12:42:15 ID:Rlzwkt+8.net]
>>899
ごめんねー、俺はプリンタ屋さんなのw
ゲームは知り合いの話ね

928 名前:デフォルトの名無しさん [2020/02/16(日) 12:54:36 ID:Yy7z+EdH.net]
プリンタ屋さんってどんな仕事ですか?

929 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 12:58:53 ID:Rlzwkt+8.net]
>>901
俺は制御周り、上位インターフェースからのデータを描画ルーチンにに渡したり、下位インターフェースにデータ渡したり、パネルとかの制御をやってる
描画部分はまた別の人がやってる



930 名前:デフォルトの名無しさん [2020/02/16(日) 12:59:56.11 ID:Yy7z+EdH.net]
なんか難しそうですね。

931 名前:デフォルトの名無しさん [2020/02/16(日) 13:01:18.53 ID:Yy7z+EdH.net]
プリンタってプロセッサはどんな感じのを使うんですか?
newってあるんですか?

932 名前:デフォルトの名無しさん [2020/02/16(日) 13:02:40.97 ID:Yy7z+EdH.net]
プリンタのヘッドについてる穴の数は決まっているんだから、あまりヒープが必要無さそうな気もする。

933 名前:デフォルトの名無しさん [2020/02/16(日) 13:03:59.79 ID:Yy7z+EdH.net]
std::vectorの上にヒープを作っても速度的に大丈夫なことは確認した。

934 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 13:07:31.29 ID:Rlzwkt+8.net]
昔はSHシリーズとかR2000とか
今はARMもそれなりに使ってる
制御だとnewは基本使わない
あと俺がやってるのは業務用のLBP

935 名前:デフォルトの名無しさん [2020/02/16(日) 13:08:47.09 ID:Yy7z+EdH.net]
ってことはキャノンですか。

936 名前:デフォルトの名無しさん [2020/02/16(日) 13:10:53.15 ID:Yy7z+EdH.net]
メモ問題は結局ホワイトボード買ってきた。
ホワイトボードをワンノートに撮影するという昔っぽいことに。

937 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 13:11:07.93 ID:Rlzwkt+8.net]
流石に社名までは出せんわw

938 名前:デフォルトの名無しさん [2020/02/16(日) 13:12:13.52 ID:Yy7z+EdH.net]
ワンノートのアンドロイド版はカメラにホワイトボードのモードがあるんだけど、テカリ消してくれないし、ホワイトバランスも調整してくれない。

939 名前:はちみつ餃子 mailto:sage [2020/02/16(日) 13:12:31.37 ID:VK9AAsv4.net]
PostScript くらいならプリンタの側で処理することもあるし、
世間で想像されているよりは高級なことをやっているんじゃないかなぁという気もする。



940 名前:デフォルトの名無しさん [2020/02/16(日) 13:16:21 ID:Yy7z+EdH.net]
ってことは、別の人がnew使いまくり

941 名前:なのでは。 []
[ここ壊れてます]

942 名前:デフォルトの名無しさん [2020/02/16(日) 13:17:17 ID:Yy7z+EdH.net]
テカテカしないホワイトボードないのかな。

943 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2020/02/16(日) 13:20:18 ID:VK9AAsv4.net]
>>914
https://www.google.com/search?q=%E3%83%9B%E3%83%AF%E3%82%A4%E3%83%88%E3%83%9C%E3%83%BC%E3%83%89+%E3%83%9E%E3%83%83%E3%83%88%E3%82%BF%E3%82%A4%E3%83%97

944 名前:デフォルトの名無しさん [2020/02/16(日) 13:20:51 ID:Yy7z+EdH.net]
ありがとん。

945 名前:デフォルトの名無しさん [2020/02/16(日) 13:27:19 ID:Yy7z+EdH.net]
モーター動かしたりするのはnew使ったらダメなんだろな。

946 名前:デフォルトの名無しさん [2020/02/16(日) 13:52:37.96 ID:Yy7z+EdH.net]
リアルタイムOSはヒープあるんだろか。

947 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 14:03:56.47 ID:1DEBeg9G.net]
>>900
ゲームに関しては、かなりちゃんとした現場で昔から malloc は使われていたし、全社的に使っても問題ないとされていた。

948 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 14:33:04.16 ID:Rlzwkt+8.net]
>>919
で?
使われてる例も使われない例もあるよ
タイミングにシビアなゲームだと使い辛いと言うだけ

949 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 14:34:24.22 ID:Rlzwkt+8.net]
>>918
最大実行時間が読める専用のヒープを持ってたりするよ



950 名前:デフォルトの名無しさん [2020/02/16(日) 14:44:07.47 ID:Yy7z+EdH.net]
あるんだ。

951 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 14:49:10.64 ID:B02+i8yM.net]
>>918
ヒープを使うかどうか選べるものが多い

952 名前:デフォルトの名無しさん [2020/02/16(日) 14:53:55.58 ID:Yy7z+EdH.net]
選べるってことは、用途によって使い分けが必要って事なんだろな。

953 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 14:59:29.04 ID:D2RmZx9z.net]
ループ内で可変長のvector使っているようなのは、外に出してループ始めにclearする方がいい
ループごとにvector出力しなきゃいけない場合も、moveしないでcopyした方がいい

954 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:03:54.38 ID:k775l7KG.net]
>>920
意見されたら喧嘩売りたくなる病気なの?

955 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:10:11 ID:D2RmZx9z.net]
mallocは使い方が余程ひどく無ければ、性能上問題になることはない
問題になっている場合もプロファイラでその部分だけ対策すればどうにでもなる
断片化やmalloc自体の管理領域容量が気になるほどの環境では使わない方がいいが

956 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:11:53 ID:+ZTPu1gL.net]
>>926
それお前じゃね?

957 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:13:28.86 ID:+ZTPu1gL.net]
>>927
リアルタイム系の仕事したことないならそう言う考え方でもいいと思うよ

958 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:17:30.49 ID:D2RmZx9z.net]
そもそもリアルタイム系の処理で、実処理部分でmallocするってのは普通しないよね

初期化時に必要なバッファはあらかじめ確保しておくものでしょ
そこはmallocだろうが静的確保だろうが変わらないし

959 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:23:06.64 ID:8bxeBykO.net]
>>929はループの中で毎回malloc freeしてるからそりゃ性能が気になるよね



960 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:24:31.11 ID:1DEBeg9G.net]
>>925
std::vector<TYPE> は、リンクリストではなく、「可変長配列」なので、std::list<TYPE> に比べて、TYPE のコンストラクタがデコボコした頻度で
多めに呼び出されてしまう傾向がある。TYPEのコンストラクタの中で何かをnew していると、new が呼び出される回数をグラフにした場合、
デコボコになるため、速度的に滑らかさがなくなってしまう可能性が考えられる。
それは、newの速度がデコボコなのではなく、std::vector が持つ悪い性質の一つ。
速度的に「滑らか」にしたいならば、std::list の方が適している。
そもそも、C言語がポインタを用意したのは、リンクリストを使いたかったからで、Cはデータ集合用のデータ構造として動的リストではなくリンクリストを用いるのが伝統。
Cの高速性とはリンクリストによるものと言っても過言ではない。
newも、mallocもコンストラクタも、リンクリストと最も相性が良い傾向がある。
cppreferenceなどでも、std::vectorが出てくることが多いが、Cの新かを発揮するにはstd::listの方が良い。

961 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:25:54.32 ID:1DEBeg9G.net]
>>932
誤:Cはデータ集合用のデータ構造として動的リストではなくリンクリストを用いるのが伝統。
正:Cはデータ集合用のデータ構造として動的配列ではなくリンクリストを用いるのが伝統。

962 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:27:49.69 ID:D2RmZx9z.net]
いやいや、速度がシビアならreserveしとけと
cとの親和性考えなきゃdequeも良いが、cのAPI呼び出し考慮すると結局vectorをうまく使うのが一番良い

963 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:28:20.99 ID:1DEBeg9G.net]
>>929
std::vector<TYPE>を使っていて、TYPEのコンストラクタの中でnewするのはリアルタイム処理には向きません。
その場合、std::list<TYPE>に変えれば劇的に速度が安定するはずです。

964 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:30:12.10 ID:1DEBeg9G.net]
>>934
CのAPI呼び出しで集合を渡す場合、通常、集合の要素はコンストラクタを持ちません。
その場合は、std::vectorは適すでしょう。
ところが、要素がコンストラクタを持つ場合は、std::listが適します。

965 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:32:54 ID:D2RmZx9z.net]
vectorで再配置する際にmoveされない前提なのね

966 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:33:13 ID:1DEBeg9G.net]
>>936
補足すれば、APIは、リング0のシステムランドで実装されていることが多いため、
リンクリストの様な複雑な構造が用いられることが少ないのです。
しかし、それはAPIに限った話で、Cは誕生したときから、要素数が変化する
集合には、動的配列よりもリンクリストを用いるのが伝統でした。
伝統と言うよりも、リンクリストこそがCの核心・本質といっても過言では有りません。

967 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:35:27 ID:1DEBeg9G.net]
>>937
C言語とはリンクリストのことです。
動的配列は、Cの文化ではありません。

968 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:36:04 ID:MPWqg8uW.net]
アドレスで直にアクセスできる言語の強みはリンクリストで活きるからごもっとも

969 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:40:23 ID:+ZTPu1gL.net]
>>930
そう言う事
平均的には間に合っても確保や解放にかかる時間が読めなくなる
100万回に1回でもダメならダメっていう世界だしね

>>931とかはそう言うことがわかってないので頓珍漢なレスになってるw



970 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:40:27 ID:pXV6w9YM.net]
>>934
reserveしただけだとOSによっては実メモリ確保しなさそう…
で初回アクセスでおもむろにページが用意されれる
ヨカン

971 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:42:34 ID:D2RmZx9z.net]
それだとmalloc使うこと自体不味いだろ
確率でmmapしちゃうのだから

972 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:44:00.56 ID:pXV6w9YM.net]
別に
>>925の前半でおk

973 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:46:21.91 ID:D2RmZx9z.net]
もちろん初期化時以外でね

974 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 16:01:46.00 ID:1DEBeg9G.net]
>>937
moveを使いたい場合、要素の TYPE クラスに move 用の記述が必要となるため、手間がかかります。

975 名前:デフォルトの名無しさん [2020/02/16(日) 16:01:54.10 ID:Yy7z+EdH.net]
is_pod_vで事前条件を確認してるけど、PODはなくなるんだってね。

976 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 16:02:29.34 ID:Rlzwkt+8.net]
>>935
まあお前がそう思うならそうなんだろうな
お前ん中ではな…

977 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 16:07:00.64 ID:D2RmZx9z.net]
listで美味しいのはsplice使いたい時くらいだろ
multi threadのログ統合したい時とかに、lockに必要な時間を最小化出来る

978 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 16:26:27.54 ID:c8Po0Swg.net]
>>947
POD = trivialかつstandard_layout
だから後者を使うようにすればいい

979 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 17:05:35.53 ID:+vprjU7s.net]
子スレッドを休眠状態で作る方法ない?
起動直後にcondition_variable::waitとかじゃなく
初期状態として



980 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 17:13:29.37 ID:YrNuZAe7.net]
何のために?それによる

981 名前:デフォルトの名無しさん [2020/02/16(日) 18:53:05 ID:Yy7z+EdH.net]
>>950
ありがとん。

982 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 21:26:26 ID:D0JJuQrX.net]
>>953
いえいえ

983 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 23:16:48.80 ID:B02+i8yM.net]
>>924
まあそりゃね

使えるようにしてもPCやスマホのように自由には使えないぞ
こまめに確保解放なんてことはしない
基本最初に確保して終わり
解放はしない
だから確保しか出来ないヒープも選べる

984 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 23:20:30.34 ID:B02+i8yM.net]
>>927
それはPCやスマホなどリッチな環境の場合

>>931
一見軽そうで重い関数があったりするから
同じ人が同じ時に作ってたらそんな処理にはしないだろうけど

985 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:08:48 ID:U44ZlMgK.net]
白物家電のマイコンやら、pfcのマイコンやらもやったが、そんなのはそもそもmalloc使うような環境じゃなかったしなぁ
RAMもkB単位で少ないし、自由に関数呼べるほどスタックも無いし
割り込み部分はアセンブリで書いてた

986 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:14:53 ID:/jKzm6f9.net]
今は冷蔵庫や電子レンジもAI積んでネットワークに繋がるIoT時代だけど
それでも組み込みって未だにそんな感じなの?

987 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:16:48 ID:U44ZlMgK.net]
まあそれは特に東南アジア向けだったし
日本よりさらにチープだったのかも

988 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:19:59 ID:uafn9Eqq.net]
>>958
そんなのごく一部

989 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:20:59 ID:uafn9Eqq.net]
いまだにチープな8bit CPUもたくさん使われている



990 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:23:25 ID:U44ZlMgK.net]
cortex-m0とか載ってたらもう小躍りしちゃうくらいのリッチさだよね

991 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:34:16.83 ID:H8nvOahp.net]
リッチなCPUを使うって事は
それだけ求められる事が大きいわけで

992 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 07:41:59.44 ID:xyBTOgD8.net]
でもCPU節約するために人件費かけて結局商品高いじゃん

993 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 09:22:40.01 ID:usLteeFN.net]
趣味じゃないんだから
当然トータルで考えるよ

開発工数、単価、機能性能、信頼性、供給、大人の事情、...

994 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 10:36:24 ID:sgjaAMaL.net]
ゲーム業界の人だけど
new使っても問題ないってのはおれの常識とは異なる

まず問題が広すぎる
言いたいことはデフォルトのグローバルヒープを無邪気に使っていいか
ということだと仮定すると
AAAクラスでそんな杜撰なことしてるところはないと思う

組み込みもそうだがリアルタイム性が必要とされるところでは、メモリ予算というものがある
グラフィック、オーディオ、ネットワークなどのモジュールごとにメモリいくらと決められる
モジュールの責任者はその中でやりくりする
ここで大事なのはメモリの最大使用量を保証しなければならないってこと

必要ならローカルのヒープは作ったりするが、この時点で担当者が気ままにnewってのは認められない
基本的にすべてコントロールされる
現実的に最大量が正確に見積もれないものもあるがそれでも最大量は決める

995 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 10:57:08.38 ID:sgjaAMaL.net]
といってもグローバルヒープを使わないわけじゃない
オープンソースのもので無邪気にmallocするものは多数あるが、それほど荒ぶらなければそのまま使う
(リアルタイム性が不要なら仮想メモリに任せる)

あとmalloc遅くないという論調の人がいるけどそれはベストケースの話でしょう
ヒープメモリが不足したり一度に巨大なメモリを確保する場合はシステムコールになるからずっと遅くなる
ワーストが見積もれないものはリアルタイムで使いづらい

まぁ昨今は仮想マシン上で動くゲームが多数あるわけで気にしなくていいレベルという意見はある
ただesports系で一瞬カつくとか商品性に関わるわけで
また後から直すのも地獄なので
最初から計画的に作るべきだろう

996 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 11:06:49.04 ID:tDJaHp5K.net]
ここC++スレだよね、つかぬことだけど
記憶管理はいつでも如何様にもカスタマイズできるようにtypename Allocatorになってるわけじゃん
なんでいきなり組み込みには向かないとかキリッてんの?

997 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 12:20:34.06 ID:ipOy1V1j.net]
>>968
typename Allocatorとかすげぇ初心者っぽい
キリってるのはお前だ

998 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 12:22:54.84 ID:tDJaHp5K.net]
>>969
kwsk

999 名前:デフォルトの名無しさん mailto: []
[ここ壊れてます]



1000 名前:sage mailto:2020/02/17(月) 12:39:53 ID:sgjaAMaL.net [ >>968
標準ライブラリでもallocatorが指定できないものもあるんだよ
もはや今のc++で標準ライブラリを全面的に使いつつ、ヒープを個別に差し替えるのはかなり非現実的だ
allocatorを差し替えられてもnewするタイミングや量はリバースエンジニアリングしないとわからない
それが問題になることもある ]
[ここ壊れてます]

1001 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 12:48:18 ID:2c+OKT/4.net]
てか、静的確保したメモリブロック使うアロケータ書いてそれで標準コンテナ使うのが基本じゃね
まあeastlでも良いが

1002 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 12:51:50 ID:tDJaHp5K.net]
>>971

> 標準ライブラリでもallocatorが指定できないもの
例えば?

newだってoperator newですぐカスタマイズできるし
placementで環境依存の細かい設定もできる

ライブラリはISO/IEC14882に固執する必要はなく
サードパーティでも内製でもより都合のよいほうを使えばいい
というだけの話

1003 名前:969 mailto:sage [2020/02/17(月) 12:56:55 ID:nfQInp9b.net]
カスタマイズの話なら真っ先にnewの話をすべきなんだが順番おかしくね?
ていうか今時はallocatorより先にpolymorphic resourceだと思うが

というかそもそもmallocの速度の話からであって、いきなりallocatorの話したり
C++全体を否定されたかのように過剰反応するとか・・

1004 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 13:12:34.13 ID:y136Nw0W.net]
仕様通りに書けばいい感じにうごいてくれて、責任は俺にはないとか
思い込んでんじゃってるキッズなんだろう。
デバッグするなんてことはもちろん頭にない。

1005 名前:865 mailto:sage [2020/02/17(月) 13:34:28 ID:FC0zZXW0.net]
>>890からの流れでは直後からnewが出てきてたろ
C++が組み込みに向かないという主張の
理由がmallocじゃおかしいだろ
それしか使えんわけでもなし

1006 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 13:44:11 ID:nfQInp9b.net]
>>968に突っ込むと>>890に同意したことになるのか

1007 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 14:00:21 ID:sgjaAMaL.net]
>>973
> > 標準ライブラリでもallocatorが指定できないもの
> 例えば?

でしょ?
お前さんは人並み以上にc++知ってると思うけどこの事実知らない
どこで使われてるか知らなきゃ置き換えができないよね

答えはあえて教えない
標準ライブラリのヘッダーをnewでgrepすればallocatorを通さないものが見つかるさ
自分で確認してこりゃ置き換え無理だわと悟って欲しいw
もし見つからないなら後で書くよ

ちなみにグローバルにnewを置き換えるぐらいならmallocのバイナリを差し替えた方が早いし確実

1008 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2020/02/17(月) 14:31:40 ID:qpTD/rYC.net]
おっ。
野党みたいなことを言い始めたぞ。

1009 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 14:37:47 ID:nfQInp9b.net]
>>979
横からだが、具体的に誰のどこを指してそう思ったのかよろしく



1010 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 14:59:36 ID:QYRwM+i2.net]
>>966
もちろん、むやみやたらと使って全く問題ないわけではない。
が、本当に必要な箇所で使う程度なら(多くの場合)余り問題ないという程度。
大体ゲームの場合のnewやmallocは、敵や弾やイフェクト、3Dオブジェクトなど
を1つずつ収めるために使うことが多いが、ゲームの1シーン内に登場する個数が
newやmallocが問題ない程度に元々なっている事がわりと多いと言うだけ。
3Dの雑草の葉っぱ一枚単位で new したりすると問題になってくるかもしれない。

1011 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 15:51:15.09 ID:sgjaAMaL.net]
>>981
なんとも感覚的な話だね
だいたい動けばOK!って感じ?
おれは仕事でそういうもの作りはしない

1012 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 16:08:54 ID:HCTe1ZqE.net]
コンシューマかPCかでも違うだろうし
(自分はさほど詳しくないが、基本コンシューマは標準ヒープ使わないはず)
ジャンルによっても違うんじゃね
PCのMMORPGなんかだとシーン中のメモリ確保は必須だろうし
あと草は普通同じメッシュやテクスチャ使うだろうし、揺れを入れるにしても一つ一つにデータ持たせるなんてアホなことしないだろ

1013 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 16:15:08 ID:tDJaHp5K.net]
>>978
「後で」かw
もう1000間近だし期限切らないでおけば時効だろってか?

1014 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 16:32:36.59 ID:y136Nw0W.net]
いやそれくらい調べろって話だろ。。馬鹿が。

1015 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 16:44:43.28 ID:tDJaHp5K.net]
>>985
sgjaAMaLが、自分の話に傾聴してきた人の質問に答えなかった
つまり自分の考えを伝える努力を中止したということでしかない

何人も自らの意見を他人に伝えるには
その意見を説明するしかなく
説明をやめることは沈黙に等しい

1016 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 16:55:56.23 ID:9WiS2n1W.net]
黙って調べてくれば?
調べて無いと結論づけられればまた偉そうに出来るだろw

1017 名前:デフォルトの名無しさん [2020/02/17(月) 17:15:39.87 ID:9Dh9neDd.net]
ちゃうねん。
僕が組み込みいうたのはArduinoのことな。
RAM2KBやし。

1018 名前:デフォルトの名無しさん [2020/02/17(月) 17:31:33 ID:9Dh9neDd.net]
Arduino面白いよ。

1019 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 18:25:59 ID:sgjaAMaL.net]
>>984
条件は明示してるんだからおれが書くかはお前に委ねられている
1000が迫っているぞw



1020 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 18:30:32 ID:T3Z0MUY2.net]
この手の人最後まで答えないか
答えても的外れなのしか見たことないわ

1021 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 18:32:18 ID:wtNXL+i7.net]
だね
消えて良いよ

1022 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 19:27:27 ID:XybgTXf7.net]
>>978
std::arrayとか言わないよね

1023 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 19:33:45 ID:nfQInp9b.net]
arrayのどこに動的メモリ確保が出てくるんだよ
アホか

1024 名前:デフォルトの名無しさん [2020/02/17(月) 19:46:45 ID:9Dh9neDd.net]
なぞなぞですか。

1025 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 23:00:17 ID:HZSaiYXA.net]
漏れはnewのときたまの遅さの可能性に警鐘を鳴らしたからセフセフ、

1026 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 23:06:03 ID:HZSaiYXA.net]
やっぱnew/deleteのレイテンシーを設計に乗せるには非ページプールメモリにアロケートするべきですよねー

1027 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 23:19:17 ID:sgjaAMaL.net]
なんかスレ止めてたら悪いから書いておくよ
ひとつは17からallocatorがdeprecatedになったstd::functionね
これは結構知られてるばずだ
定期的にこれ濫用する人が現れるんだけど中身理解してから使うか判断しろと職場では言っている代物

もうひとつあげるなら、
処理系によってかなり違うかもだけどstd::threadも中でこっそり内部クラスをnewしてるはず
ただスレッド間で引数を引き渡すためのものでサイズは小さいしスレッド作るコストの方が遥かにでかいから問題にはなりにくい

他にもあるけどとりあえずこんなもんで

1028 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 23:46:06.60 ID:HZSaiYXA.net]
std::functionを使わないと1 bitもプログラムが書けなくなった漏れガイル、
クロージャをいちいちクラス定義から手で書く日々に戻るのはいやじゃー

1029 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 23:54:13.03 ID:HCTe1ZqE.net]
1000なら>>986, >>991-992が土下座



1030 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 17日 3時間 0分 7秒

1031 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<235KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef