C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part149
https://mevius.5ch.net/test/read.cgi/tech/1581974381/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
テンプレここまで
C++相談室 part150
■ このスレッドは過去ログ倉庫に格納されています
2020/03/24(火) 00:04:33.93ID:YFRNwZnv
371デフォルトの名無しさん
2020/04/25(土) 23:12:19.03ID:/7S9hKw7 ポリゴンだからソートする必要ないのか
372デフォルトの名無しさん
2020/04/26(日) 00:08:03.75ID:PBJtHpgo 使ったこと無いから知らんがstd::unique<T>()は
>削除は、消去される要素が上書きされるように、範囲内の要素をずらすことによって行われます。
とのことなので、callerがstd::unique<T>()を呼ぶ前にソートしておく必要があるのでは…
>削除は、消去される要素が上書きされるように、範囲内の要素をずらすことによって行われます。
とのことなので、callerがstd::unique<T>()を呼ぶ前にソートしておく必要があるのでは…
373デフォルトの名無しさん
2020/04/26(日) 00:15:41.29ID:tEMTnANK >>370
unique前にソートで昇順にしているみたいです。
unique前にソートで昇順にしているみたいです。
374デフォルトの名無しさん
2020/04/26(日) 00:30:35.80ID:NFXmWZjN 結局メモリーポインタ関連わかってない奴はガベコレなんかで隠ぺいした言語使っててもバグる
375デフォルトの名無しさん
2020/04/26(日) 05:15:56.17ID:mQCdU9mn vecVisibilityPolygonPoints が「1枚のポリゴンの各頂点の座標(頂点数は任意)」で
座標値は画面に表示すべき値に変換済み(透視投影が完了している)、
<float, float, float> が (x, y, z) を表すと仮定すると…
隣合う頂点のx座標同士、y座標同士がそれぞれ十分に近ければ
その「極端に短い一辺」を1つの頂点とみなして表示処理を軽減、って感じかな。
resize() の結果 size() が 1 か 2 になったらポリゴン全体が
「見えないポリゴン」になるので丸ごと省略、までやるかも。
座標値は画面に表示すべき値に変換済み(透視投影が完了している)、
<float, float, float> が (x, y, z) を表すと仮定すると…
隣合う頂点のx座標同士、y座標同士がそれぞれ十分に近ければ
その「極端に短い一辺」を1つの頂点とみなして表示処理を軽減、って感じかな。
resize() の結果 size() が 1 か 2 になったらポリゴン全体が
「見えないポリゴン」になるので丸ごと省略、までやるかも。
376375
2020/04/26(日) 05:26:01.50ID:mQCdU9mn tupple::get<> は 0 始まりだから y, z 座標だね(>>370 さんの言う通り)。
すると少々怪しいか、素朴な仮定だとスッキリ辻褄が合わない。
すると少々怪しいか、素朴な仮定だとスッキリ辻褄が合わない。
377デフォルトの名無しさん
2020/04/26(日) 06:57:42.91ID:yiiyQ5aD 申し訳ありません。
>>363のコードは
ttps://github.com/OneLoneCoder/olcPixelGameEngine/blob/master/Videos/OneLoneCoder_PGE_ShadowCasting2D.cpp
の416行からです。
>>363のコードは
ttps://github.com/OneLoneCoder/olcPixelGameEngine/blob/master/Videos/OneLoneCoder_PGE_ShadowCasting2D.cpp
の416行からです。
378デフォルトの名無しさん
2020/04/26(日) 08:53:55.40ID:PKqlhi9Y >374
確かにGCあり言語でのリークなんかは逆にデバッグがかなり難しい。
理解してないやつはまず無理。
確かにGCあり言語でのリークなんかは逆にデバッグがかなり難しい。
理解してないやつはまず無理。
379デフォルトの名無しさん
2020/04/26(日) 10:44:13.53ID:O/ywVmO1 そういうのはシステムのバグで
自分の落ち度じゃねえだろ
自分の落ち度じゃねえだろ
380デフォルトの名無しさん
2020/04/26(日) 11:12:47.10ID:YMFvD6ns システムのバグ以外にリークが起きないとでも思ってるの?
381デフォルトの名無しさん
2020/04/26(日) 11:14:07.90ID:O/ywVmO1 起きるとでも思っているのか?
382デフォルトの名無しさん
2020/04/26(日) 11:15:58.89ID:YMFvD6ns 当たり前
383デフォルトの名無しさん
2020/04/26(日) 11:24:00.41ID:O/ywVmO1 えらく無口だな
384デフォルトの名無しさん
2020/04/26(日) 11:28:31.53ID:PBJtHpgo プログラムの開始から終わりまで存在するオブジェクトがリストを所有しており、
そのリストに要素数制限もエラーチェックも無く無制限に増える場合とか、
オブジェクトAとオブジェクトBが互いを参照し合っている場合(循環参照)とか
いろいろ
つかオブジェクトをいつ使い終わったかを機械的に判定する難しさを考えたらワカル
そのリストに要素数制限もエラーチェックも無く無制限に増える場合とか、
オブジェクトAとオブジェクトBが互いを参照し合っている場合(循環参照)とか
いろいろ
つかオブジェクトをいつ使い終わったかを機械的に判定する難しさを考えたらワカル
385デフォルトの名無しさん
2020/04/26(日) 11:42:05.69ID:BQqaPcbS 使わないのに参照しっぱなしで放置=リークともとれるからね
GCはあるとちょっとは便利でしょって程度のものでヒープ管理の全体像はプログラマが把握しておくべきだと思うわ
頻繁なGCが必要なくらいにヒープ使うのであれば設計から考え直す必要あるんじゃないかと
GCはあるとちょっとは便利でしょって程度のものでヒープ管理の全体像はプログラマが把握しておくべきだと思うわ
頻繁なGCが必要なくらいにヒープ使うのであれば設計から考え直す必要あるんじゃないかと
386デフォルトの名無しさん
2020/04/26(日) 11:50:09.63ID:O/ywVmO1 リークじゃねえじゃん
参照元の寿命が尽きてないんなら
参照元の寿命が尽きてないんなら
387デフォルトの名無しさん
2020/04/26(日) 11:54:22.98ID:PBJtHpgo >>386
参照元の寿命が尽きていなくても使いもしないのであれば現象としてはリ〜クに他ならない
違うというならメモリ消費量が際限なく増え続けるプログラムを客先に納めて
リ〜クではないんですよと仕様ですよ説明して見せると良い
参照元の寿命が尽きていなくても使いもしないのであれば現象としてはリ〜クに他ならない
違うというならメモリ消費量が際限なく増え続けるプログラムを客先に納めて
リ〜クではないんですよと仕様ですよ説明して見せると良い
388デフォルトの名無しさん
2020/04/26(日) 12:08:46.85ID:O/ywVmO1389デフォルトの名無しさん
2020/04/26(日) 12:13:43.92ID:YMFvD6ns リークですね
390デフォルトの名無しさん
2020/04/26(日) 12:15:41.10ID:YMFvD6ns 狭い狭い定義しか知らないと恥ずかしいよ
391デフォルトの名無しさん
2020/04/26(日) 12:30:26.50ID:L6Afs0I9 リークの字義的には微妙
プロセス外部から見える挙動はリークと同様だけど
プロセス外部から見える挙動はリークと同様だけど
392デフォルトの名無しさん
2020/04/26(日) 12:31:51.69ID:O/ywVmO1 >>390
自分が間違って憶えているのを正当化するために定義を広くしようたって誰も協力せんぞ
自分が間違って憶えているのを正当化するために定義を広くしようたって誰も協力せんぞ
393デフォルトの名無しさん
2020/04/26(日) 12:33:29.76ID:PKqlhi9Y いや普通に文脈で何を問題にしてるかわかるだろ。。
勝手に自分ルールで解釈狭めてリークはないとか言い出してる奴が頭おかしいわ。
勝手に自分ルールで解釈狭めてリークはないとか言い出してる奴が頭おかしいわ。
394デフォルトの名無しさん
2020/04/26(日) 12:43:33.17ID:oUbeKuvV 明確な定義なんてないだろ
リークに見える挙動はリークだよ
リークに見える挙動はリークだよ
リークの定義は複数あっていいと思いますが、「@自分の定義はこれで、だからAこれはリークである/ない」の@A二点を明示するべきだと思いますね
396デフォルトの名無しさん
2020/04/26(日) 12:49:09.81ID:O/ywVmO1 >>393
何を問題にしているかと、それをリークと呼ぶか否かは別な話だぜ
何を問題にしているかと、それをリークと呼ぶか否かは別な話だぜ
397デフォルトの名無しさん
2020/04/26(日) 12:49:37.61ID:0EP709eE リークに見える?
実際リークしてるわけで
実際リークしてるわけで
398デフォルトの名無しさん
2020/04/26(日) 12:50:39.33ID:O/ywVmO1 それこそ「理解してないやつ」がテキトーこいてリークだリークだ言うのと同じだ
399デフォルトの名無しさん
2020/04/26(日) 12:51:44.94ID:L6Afs0I9 まあ何から漏れているか明確じゃないのまで、リークと呼び始めた人が悪いんだな
内部的な原因も対処法も全く違うのに、外見だけで同じ名前つけられても混乱するだろうに
内部的な原因も対処法も全く違うのに、外見だけで同じ名前つけられても混乱するだろうに
400デフォルトの名無しさん
2020/04/26(日) 12:52:48.59ID:NFXmWZjN リークによって起きる現象とリークは分けて考えた方がいい
本質的には未使用メモリーの蓄積だが名称がないから混乱が起きる
蓄積を処理しないのもバグ
リークは蓄積をコントロールできなくなっていて、結果的に処理していない点が違うがこれもバグ
本質的には未使用メモリーの蓄積だが名称がないから混乱が起きる
蓄積を処理しないのもバグ
リークは蓄積をコントロールできなくなっていて、結果的に処理していない点が違うがこれもバグ
401デフォルトの名無しさん
2020/04/26(日) 12:54:00.99ID:wqemtgsF 少なくとも>>384の巨大リストを抱えてる方はリークとは言わない
データ管理がなってないだけ
データ管理がなってないだけ
402デフォルトの名無しさん
2020/04/26(日) 12:55:18.24ID:0EP709eE 原因は?
メモリリークによりメモリが不足してました
これだけで終わる会話を
メモリリークによりメモリが不足してました
これだけで終わる会話を
403デフォルトの名無しさん
2020/04/26(日) 12:57:19.34ID:0EP709eE404デフォルトの名無しさん
2020/04/26(日) 12:58:55.24ID:0EP709eE 循環参照で問題になるのはカウント方式の場合
C++のスマポくらいでは?
C++のスマポくらいでは?
405デフォルトの名無しさん
2020/04/26(日) 12:59:35.20ID:0EP709eE406デフォルトの名無しさん
2020/04/26(日) 13:01:31.99ID:O/ywVmO1 int main(void)
{
void *p = malloc(1);
int x;
while(scanf("%d", x) != EOF) { //タイプミスで永久ループ
//...
}
free(p); //到達しなくなる
}
参照元pが生きているのはリークではない
{
void *p = malloc(1);
int x;
while(scanf("%d", x) != EOF) { //タイプミスで永久ループ
//...
}
free(p); //到達しなくなる
}
参照元pが生きているのはリークではない
407デフォルトの名無しさん
2020/04/26(日) 13:18:14.23ID:yChHyLLG 使ってないメモリ領域が増え続けるのはメモリリーク
参照があろうがなかろうが
参照があろうがなかろうが
408デフォルトの名無しさん
2020/04/26(日) 13:23:22.33ID:L6Afs0I9 使ってないと言っても使うかもしれないから無限にリストが長くなっているんじゃね
純粋なインメモリデータベースだとそれはリークではないよね
問題が起きたのだとしたら、用途に対してメモリが少なかったのが悪いだけで
純粋なインメモリデータベースだとそれはリークではないよね
問題が起きたのだとしたら、用途に対してメモリが少なかったのが悪いだけで
409デフォルトの名無しさん
2020/04/26(日) 13:23:31.29ID:O/ywVmO1 管理手段が残っているのはリークではない
無駄に多く割り付けたり解放のタイミングがまずいというだけ
無駄に多く割り付けたり解放のタイミングがまずいというだけ
410デフォルトの名無しさん
2020/04/26(日) 13:30:11.65ID:X/1sAzcb >>410
それは GC の種類によるんじゃないでしょうか?
参照カウンタ方式のGC(私は、参照カウンタ方式はGCと呼ばない人ですが)ならGCがあってもリークするでしょうし、
GCの元祖マークアンドスウィープ式や、これも昔からあるコピーGCならば、リークはしないでしょうね
それは GC の種類によるんじゃないでしょうか?
参照カウンタ方式のGC(私は、参照カウンタ方式はGCと呼ばない人ですが)ならGCがあってもリークするでしょうし、
GCの元祖マークアンドスウィープ式や、これも昔からあるコピーGCならば、リークはしないでしょうね
412デフォルトの名無しさん
2020/04/26(日) 14:07:55.73ID:YMFvD6ns どんな方式だってリークする
413デフォルトの名無しさん
2020/04/26(日) 14:09:19.26ID:YMFvD6ns 使わないメモリが増え続ければリーク
414デフォルトの名無しさん
2020/04/26(日) 14:10:46.96ID:YMFvD6ns 上のリンクのガベージコレクションの限界
に書いてある
に書いてある
415デフォルトの名無しさん
2020/04/26(日) 14:18:17.62ID:X/1sAzcb C#とかだと、イベント購読の解除忘れなどでリークすることがあるそうです。
その対策で弱参照が使われることがあるそうです。
https://ufcpp.net/study/csharp/RmWeakReference.html#weak-event
その対策で弱参照が使われることがあるそうです。
https://ufcpp.net/study/csharp/RmWeakReference.html#weak-event
416デフォルトの名無しさん
2020/04/26(日) 14:19:26.91ID:L6Afs0I9 無限に増えるキャッシュ
->使っているからリークじゃない
ログ的なデータを延々と追加するだけ->
リーク
終了時にファイル出力->リークじゃない
つまり、ファイル出力機能を後から追加することでリークじゃなくなるんだな
それでメモリ足りなくなったらなんて呼ぶんだろう
->使っているからリークじゃない
ログ的なデータを延々と追加するだけ->
リーク
終了時にファイル出力->リークじゃない
つまり、ファイル出力機能を後から追加することでリークじゃなくなるんだな
それでメモリ足りなくなったらなんて呼ぶんだろう
417デフォルトの名無しさん
2020/04/26(日) 14:37:42.83ID:r10bSm2e リークかどうかじゃなくて使ってるか使ってないかだな
プログラマー的には使ってないけどプログラム的には使ってるものをリークと呼ぶのが適切とは思えんけど
プログラマー的には使ってないけどプログラム的には使ってるものをリークと呼ぶのが適切とは思えんけど
418デフォルトの名無しさん
2020/04/26(日) 14:42:49.35ID:fU7fb2M4 プログラマー的には使ってないけどプログラム的には使ってるものをリーク
プログラマー的には使ってるけどプログラム的には使ってないものをリーク
プログラマー的には使ってないけどプログラム的には使っないものをリーク
プログラマー的には使ってるけどプログラム的には使ってるものをリーク
プログラマー的には使ってるけどプログラム的には使ってないものをリーク
プログラマー的には使ってないけどプログラム的には使っないものをリーク
プログラマー的には使ってるけどプログラム的には使ってるものをリーク
419デフォルトの名無しさん
2020/04/26(日) 14:44:35.43ID:1jKTUwjI どの立場で見るかでしょ
言語のランタイムシステムの立場では参照が残ってるんだったらリークではないといえる
人間の立場では無限にメモリ使ってるつもりがないのにメモリが枯渇するのでリークしてる
現実問題は人間の立場で見るのだから後者でよい
言語のランタイムシステムの立場では参照が残ってるんだったらリークではないといえる
人間の立場では無限にメモリ使ってるつもりがないのにメモリが枯渇するのでリークしてる
現実問題は人間の立場で見るのだから後者でよい
420デフォルトの名無しさん
2020/04/26(日) 15:07:57.54ID:O/ywVmO1 枯渇したらリークってのもおかしいぜ
必要容量のRAMを実装していないのがリークになっちまう
必要容量のRAMを実装していないのがリークになっちまう
421デフォルトの名無しさん
2020/04/26(日) 15:17:14.94ID:1jKTUwjI422デフォルトの名無しさん
2020/04/26(日) 15:23:22.13ID:O/ywVmO1 明示的に解放できないシステムでどうやって気をつけるんだよ
さっきからシステムのバグつってんだろ
さっきからシステムのバグつってんだろ
423デフォルトの名無しさん
2020/04/26(日) 15:25:40.91ID:O/ywVmO1 そもそもGCが解放してくれないのはリークではないからだろうが
>>412
元祖マークアンドスィープ法やコピーGC ではリークしませんね、これは断言できるでしょう
元祖マークアンドスィープ法やコピーGC ではリークしませんね、これは断言できるでしょう
>>414
リンクのwiki には、参照カウンタ方式のリークは書いてあっても、マークアンドスウィープ法やコピーGC についてはリークするとは書いていませんね
リンクのwiki には、参照カウンタ方式のリークは書いてあっても、マークアンドスウィープ法やコピーGC についてはリークするとは書いていませんね
428デフォルトの名無しさん
2020/04/26(日) 15:42:28.68ID:X/1sAzcb >>428
>参照カウントではないC#でも弱い参照が存在することは
@強い参照、弱い参照を使い分ける方式は、参照カウント法の一種だと認識しています
A元祖マークアンドスウィープ法、コピーGC法では原理的にリークは発生しませんし、発生し得ません
>参照カウントではないC#でも弱い参照が存在することは
@強い参照、弱い参照を使い分ける方式は、参照カウント法の一種だと認識しています
A元祖マークアンドスウィープ法、コピーGC法では原理的にリークは発生しませんし、発生し得ません
430デフォルトの名無しさん
2020/04/26(日) 15:55:37.10ID:O/ywVmO1 >>410
おまえさんWikipediaってどんな所だか知ってるか?
ちなみに俺もとあるページを執筆したことがあるが
俺はどこの馬の骨か聞かれもしなかったし
アホなミスをしでかしてもあんまり指摘されないし
悪意のある文面をやめさせるのにも手間取るぞ
査読できる人でないと鵜呑みは危険だぞ
おまえさんWikipediaってどんな所だか知ってるか?
ちなみに俺もとあるページを執筆したことがあるが
俺はどこの馬の骨か聞かれもしなかったし
アホなミスをしでかしてもあんまり指摘されないし
悪意のある文面をやめさせるのにも手間取るぞ
査読できる人でないと鵜呑みは危険だぞ
431デフォルトの名無しさん
2020/04/26(日) 15:57:08.52ID:X/1sAzcb 一方、マーク・アンド・スイープ方式やコピーGC方式では循環参照によるメモリリークは
発生しないが、非意図的オブジェクト保持(unintentional object retention)が引き起こす
メモリリークを強参照のみによる実装で解消することは難しく煩雑であり、
実装を簡略化するために弱参照が用いられることがある。
https://ja.wikipedia.org/wiki/%E5%BC%B1%E3%81%84%E5%8F%82%E7%85%A7
発生しないが、非意図的オブジェクト保持(unintentional object retention)が引き起こす
メモリリークを強参照のみによる実装で解消することは難しく煩雑であり、
実装を簡略化するために弱参照が用いられることがある。
https://ja.wikipedia.org/wiki/%E5%BC%B1%E3%81%84%E5%8F%82%E7%85%A7
433デフォルトの名無しさん
2020/04/26(日) 16:10:32.96ID:X/1sAzcb 使ってる言葉の意味が異なる人を説得するのは無理だと悟った
434デフォルトの名無しさん
2020/04/26(日) 16:21:48.25ID:YMFvD6ns また面倒なのが出てきたな
wikipediaのリンクで終わったかと思ったのに
QZは頭が弱いから
wikipediaのリンクで終わったかと思ったのに
QZは頭が弱いから
435デフォルトの名無しさん
2020/04/26(日) 16:22:02.20ID:CnmrePPR >>426
407の定義だと曖昧すぎて気持ち悪くなるって例出しただけ
確保したメモリを使用しなくなったのに解放しないまま管理外にするのが狭義のメモリリーク
それ以外の現象もメモリリークと呼ぶのは知っているが、その呼び方は混乱招くから好きじゃないって立場
407の定義だと曖昧すぎて気持ち悪くなるって例出しただけ
確保したメモリを使用しなくなったのに解放しないまま管理外にするのが狭義のメモリリーク
それ以外の現象もメモリリークと呼ぶのは知っているが、その呼び方は混乱招くから好きじゃないって立場
436デフォルトの名無しさん
2020/04/26(日) 16:26:58.57ID:YMFvD6ns 使わない、使うつもりもない、プログラマが意図しないメモリ
これらが増え続ければリーク
定義じゃなくて十分条件の例
これらが増え続ければリーク
定義じゃなくて十分条件の例
437デフォルトの名無しさん
2020/04/26(日) 16:28:11.48ID:1jKTUwjI >>422
> 明示的に解放できないシステムでどうやって気をつけるんだよ
gc言語で本格的な開発したことないって白状してるようなもんだね
メモリプロファイラで地道に調べるんだよ
あと不要になったらgc任せにせずに即null代入しておけとかよく言われるだろ
> さっきからシステムのバグつってんだろ
システムって何だよ?意味広すぎるから説明になってない
gc言語においては言語レベルではリークしない(循環参照はさておき)
が依然人間の不注意によって実質的なリークは起るわけ
それをお前はリークと呼ばなんだろうけど一般的にそれもリークと呼ばれてる
それだけの話
理解しようぜ
> 明示的に解放できないシステムでどうやって気をつけるんだよ
gc言語で本格的な開発したことないって白状してるようなもんだね
メモリプロファイラで地道に調べるんだよ
あと不要になったらgc任せにせずに即null代入しておけとかよく言われるだろ
> さっきからシステムのバグつってんだろ
システムって何だよ?意味広すぎるから説明になってない
gc言語においては言語レベルではリークしない(循環参照はさておき)
が依然人間の不注意によって実質的なリークは起るわけ
それをお前はリークと呼ばなんだろうけど一般的にそれもリークと呼ばれてる
それだけの話
理解しようぜ
438デフォルトの名無しさん
2020/04/26(日) 16:28:26.47ID:YMFvD6ns 管理外っていうのは何を示してるかよく分からない
439デフォルトの名無しさん
2020/04/26(日) 16:29:38.80ID:fU7fb2M4440デフォルトの名無しさん
2020/04/26(日) 16:43:46.17ID:1jKTUwjI >>423
昔から言われてることだけに昔の記事あったからこれでも読んでみ
ttps://www.atmarkit.co.jp/fjava/rensai3/debug02/debug02_1.html
単に何をリークと呼ぶかというだけの話
Javaの開発元のサンの人もこういうんだからそれにあわせようぜ
昔から言われてることだけに昔の記事あったからこれでも読んでみ
ttps://www.atmarkit.co.jp/fjava/rensai3/debug02/debug02_1.html
単に何をリークと呼ぶかというだけの話
Javaの開発元のサンの人もこういうんだからそれにあわせようぜ
441デフォルトの名無しさん
2020/04/26(日) 16:45:39.03ID:PBJtHpgo >>438
GCが解放してくれるとプログラマが信じているが事実はそうでないケース
GCが解放してくれるとプログラマが信じているが事実はそうでないケース
442デフォルトの名無しさん
2020/04/26(日) 16:49:23.41ID:PBJtHpgo プログラマーが自分で作ったつもりのスレッドで資源を確保して、
スレッドの最初の関数からreturnしたら全部解放されると思いきや!
実はスレッドプールの1要素としてシステムが握りっぱなしだった、
みたいなテクノロジーホラーが
あるのかも
しれませんね
知らんけど
スレッドの最初の関数からreturnしたら全部解放されると思いきや!
実はスレッドプールの1要素としてシステムが握りっぱなしだった、
みたいなテクノロジーホラーが
あるのかも
しれませんね
知らんけど
443デフォルトの名無しさん
2020/04/26(日) 16:58:02.62ID:4KWblUmJ MSVCのstd::asyncでは
444375
2020/04/26(日) 17:17:04.65ID:mQCdU9mn >>377 のリンク先のソースをすっかり理解できたとは言い難いけど、
この場合の <float, float, float> は (何かの角度, x座標, y座標) みたいね。
vecVisibilityPolygonPoints は最初の要素(角度)でソート済み。
get<1>()でx座標、get<2>()でy座標を取れるから >>375 の第2段落の理屈は有効。
>>363 の質問に戻ると、
{0.1, 0.11, 0.2, 0.21, 0.4, 0.41}
↓
{0.1, 0.2, 0.4}
の理解でだいたい合ってる。単一の値の比較でなく
「x座標同士, y座標同士が両方とも近い値の場合だけまとめる」わけだが。
もうひとつ。376で tupple::get と書いたけど、もちろん tuple::get が正しい。
(ここを訂正しておきたかった)。
この場合の <float, float, float> は (何かの角度, x座標, y座標) みたいね。
vecVisibilityPolygonPoints は最初の要素(角度)でソート済み。
get<1>()でx座標、get<2>()でy座標を取れるから >>375 の第2段落の理屈は有効。
>>363 の質問に戻ると、
{0.1, 0.11, 0.2, 0.21, 0.4, 0.41}
↓
{0.1, 0.2, 0.4}
の理解でだいたい合ってる。単一の値の比較でなく
「x座標同士, y座標同士が両方とも近い値の場合だけまとめる」わけだが。
もうひとつ。376で tupple::get と書いたけど、もちろん tuple::get が正しい。
(ここを訂正しておきたかった)。
445デフォルトの名無しさん
2020/04/26(日) 17:35:47.46ID:PBJtHpgo ちゅか循環参照するオブジェクトの解放のための正しい方策はマーク&スイープ方式であって
普通の言語においては弱参照はあんま助けにならないハズ
(普通の言語では、一旦解放したオブジェクトを復活させることはプログラマがそのような復活コードを書かない限り不可能なため、
使用予定があるオブジェクトを単に弱参照にしてGCに好きなタイミングで解放させるだけだとプログラムがロシアンルーレットになる
実際のところ弱参照を用いてヒヤヒヤしながら辻褄合わせする(結局何がしかのコードが必要)なぐらいなら、
最初からGCに頼らずに確保と解放をコード上で明示的に計画した方がマシ
で、マーク&スイープ方式はマークのための空間と時間の計算量(探索!)が必要な上に、
その挙動をユーザーが書くプログラムコードから隠しおおせる言語でないと適用できない
普通の言語においては弱参照はあんま助けにならないハズ
(普通の言語では、一旦解放したオブジェクトを復活させることはプログラマがそのような復活コードを書かない限り不可能なため、
使用予定があるオブジェクトを単に弱参照にしてGCに好きなタイミングで解放させるだけだとプログラムがロシアンルーレットになる
実際のところ弱参照を用いてヒヤヒヤしながら辻褄合わせする(結局何がしかのコードが必要)なぐらいなら、
最初からGCに頼らずに確保と解放をコード上で明示的に計画した方がマシ
で、マーク&スイープ方式はマークのための空間と時間の計算量(探索!)が必要な上に、
その挙動をユーザーが書くプログラムコードから隠しおおせる言語でないと適用できない
446デフォルトの名無しさん
2020/04/26(日) 17:38:44.84ID:PBJtHpgo C++でマーク&スイープしようとすると、オブジェクトaを所有するオブジェクトbの確保、が単に構造体をnewするだけでは済まなくなってしまうま
(所有関係をGCに教えるための呼び出しを書かねばならない。プログラムが小汚くなっていき、ぜってー忘れたり間違える
(所有関係をGCに教えるための呼び出しを書かねばならない。プログラムが小汚くなっていき、ぜってー忘れたり間違える
447デフォルトの名無しさん
2020/04/26(日) 17:47:22.05ID:O/ywVmO1448デフォルトの名無しさん
2020/04/26(日) 17:52:01.79ID:GMbq2WIv449デフォルトの名無しさん
2020/04/26(日) 17:58:01.59ID:X/1sAzcb >>446
Boehm GCとか
Boehm GCとか
450デフォルトの名無しさん
2020/04/26(日) 18:06:28.71ID:O/ywVmO1 >>437
> gc言語で本格的な開発したことないって白状してるようなもんだね
おまえさんこそ、相手の経歴や人格を攻撃せねばならんほど窮しているのが露呈してるぜ
頭の中で問題が整理できていれば冷静かつアカデミックに指摘ができるはず
そんなに頭に血が昇るのは問題が整理できていないか沸点の低いアレなやつか又は両方だな
> gc言語で本格的な開発したことないって白状してるようなもんだね
おまえさんこそ、相手の経歴や人格を攻撃せねばならんほど窮しているのが露呈してるぜ
頭の中で問題が整理できていれば冷静かつアカデミックに指摘ができるはず
そんなに頭に血が昇るのは問題が整理できていないか沸点の低いアレなやつか又は両方だな
451デフォルトの名無しさん
2020/04/26(日) 18:08:38.19ID:O/ywVmO1452はちみつ餃子 ◆8X2XSCHEME
2020/04/26(日) 18:28:15.91ID:Kc4H3V0/ >>422
・ GC のない言語でうっかりメモリの解放を忘れる
・ GC のある言語でうっかりもう使わないオブジェクトの参照を残してしまう (GC の回収対象にならない)
リークと呼ぶかどうかはともかくとして、
前者で気を付けなきゃならないのと同様に後者にも気を付けないといけないというのは普通のことだと思うよ。
・ GC のない言語でうっかりメモリの解放を忘れる
・ GC のある言語でうっかりもう使わないオブジェクトの参照を残してしまう (GC の回収対象にならない)
リークと呼ぶかどうかはともかくとして、
前者で気を付けなきゃならないのと同様に後者にも気を付けないといけないというのは普通のことだと思うよ。
453デフォルトの名無しさん
2020/04/26(日) 18:59:47.51ID:1jKTUwjI454デフォルトの名無しさん
2020/04/26(日) 20:36:09.72ID:sSD7yA0P QZアホやw
Javaのメモリリークを見つけるのがどんだけ面倒なのか全く分からないようだ
こいつプログラマじゃないな
Javaのメモリリークを見つけるのがどんだけ面倒なのか全く分からないようだ
こいつプログラマじゃないな
455デフォルトの名無しさん
2020/04/26(日) 20:55:44.38ID:O/ywVmO1 >>452
> ・ GC のある言語でうっかりもう使わないオブジェクトの参照を残してしまう (GC の回収対象にならない)
じゃあ、そもそもGCって何のためにあるんだってことだね
私見ながら、馬鹿馬鹿しいぜ
> ・ GC のある言語でうっかりもう使わないオブジェクトの参照を残してしまう (GC の回収対象にならない)
じゃあ、そもそもGCって何のためにあるんだってことだね
私見ながら、馬鹿馬鹿しいぜ
456デフォルトの名無しさん
2020/04/26(日) 20:57:06.36ID:O/ywVmO1 資源を解放すべき盤面で、自動化されてるんだから手を出しちゃダメ
あげく解放されませんでした、解放されてるかどうか確認をせよ
何なのコレ?
あげく解放されませんでした、解放されてるかどうか確認をせよ
何なのコレ?
457はちみつ餃子 ◆8X2XSCHEME
2020/04/26(日) 21:11:50.20ID:Kc4H3V0/ >>455-456
事例としては
例1: 使い捨てスクリプト
その程度の管理で良い。
ガッと動かしてそのまま終わるので管理もクソもない。
例2: サービスの変更が多いウェブサービス
まずは早期に動かすことが大事。
細けぇことは後でプロファイラを見ながらなんとかする。
事例としては
例1: 使い捨てスクリプト
その程度の管理で良い。
ガッと動かしてそのまま終わるので管理もクソもない。
例2: サービスの変更が多いウェブサービス
まずは早期に動かすことが大事。
細けぇことは後でプロファイラを見ながらなんとかする。
458デフォルトの名無しさん
2020/04/26(日) 21:14:39.85ID:PBJtHpgo >自動化されてるんだから手を出しちゃダメ
ハアwwww?
コードで明示的にマークも出来ますが何かwwwwwwww
>あげく解放されませんでした、解放されてるかどうか確認をせよ
ハアwwwwwwwww?
>>456は不具合を発見してから不具合がないか確認するタイプ?wwwwwwwwwwww
ハアwwww?
コードで明示的にマークも出来ますが何かwwwwwwww
>あげく解放されませんでした、解放されてるかどうか確認をせよ
ハアwwwwwwwww?
>>456は不具合を発見してから不具合がないか確認するタイプ?wwwwwwwwwwww
459デフォルトの名無しさん
2020/04/26(日) 21:31:08.35ID:O/ywVmO1460デフォルトの名無しさん
2020/04/26(日) 21:38:26.82ID:O/ywVmO1 「資源の解放はお任せくださいっ!!(キリッ
「あのー循環参照が・・・
「メモリーだけです!!(汗
「資源じゃなかったんですか?
「そのくらい察して下さい!!(滝汗
「もういいです
「あのー循環参照が・・・
「メモリーだけです!!(汗
「資源じゃなかったんですか?
「そのくらい察して下さい!!(滝汗
「もういいです
461デフォルトの名無しさん
2020/04/26(日) 22:53:28.79ID:QPzhUi52 仕事でしゃーなしに使う言語あるいは
知ったかしたいアマチュアが使う言語、それがC++
知ったかしたいアマチュアが使う言語、それがC++
462デフォルトの名無しさん
2020/04/26(日) 23:02:01.07ID:L6Afs0I9 仕事で喜んで使う言語だな
c#とかjavaとかだと嫌になる
c#とかjavaとかだと嫌になる
>>462
java は、少なくとも昔の java は、厳しく抑制のきいた文法と豊富なクラスライブラリでいい感じだと思いますよ、文法は意味があっての簡素なほうが好みですね
c# は、クラスライブラリの全容を把握していないので、まだ評価にとりかかれないのですが、これからじっくり調べたいと思っています
java は、少なくとも昔の java は、厳しく抑制のきいた文法と豊富なクラスライブラリでいい感じだと思いますよ、文法は意味があっての簡素なほうが好みですね
c# は、クラスライブラリの全容を把握していないので、まだ評価にとりかかれないのですが、これからじっくり調べたいと思っています
464デフォルトの名無しさん
2020/04/27(月) 00:49:16.60ID:fjvRegs6 Javaは新しいCOBOLになってしまった
当初の理想は良かったと思うけどままならんもんだね
当初の理想は良かったと思うけどままならんもんだね
465デフォルトの名無しさん
2020/04/27(月) 07:25:21.81ID:8maROmCe >>461
シッタカにいつもマウント取られる水準のやつからは、そう見えるだろうな
シッタカにいつもマウント取られる水準のやつからは、そう見えるだろうな
466デフォルトの名無しさん
2020/04/27(月) 07:39:21.53ID:xj40wisa まともにコンパイルも通してないで知ったかしてるバカに言えることなんてないけどね。
467デフォルトの名無しさん
2020/04/27(月) 10:24:31.10ID:GkRU7UlF468デフォルトの名無しさん
2020/04/27(月) 10:53:01.86ID:8maROmCe469デフォルトの名無しさん
2020/04/27(月) 15:48:22.92ID:D/t5uqt1 なんで
long long abs(long long x)
なんだろうか
負の数の方が絶対値の大きい値が表せちゃうのに
long long abs(long long x)
なんだろうか
負の数の方が絶対値の大きい値が表せちゃうのに
470デフォルトの名無しさん
2020/04/27(月) 15:59:47.26ID:l27UEbbh 0x8000000000000000 代入してみろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【熊本】園児に強制性交か 保育所勤務の男を逮捕「性的な欲望が我慢できなかった」警察は余罪を調べる [七波羅探題★]
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【サッカー】元日本代表DF冨安がオランダ1部アヤックスと大筋合意か 現地メディア報じる [久太郎★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★]
- 【未成年NISA】つみたて枠、18歳未満は600万円上限 12歳で引き出し可能 [蚤の市★]
- 高市早苗「竹島は日本領土」 [834922174]
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- あくたんのおまんこって甘そうだよな🤤
- 暖房やめて湯たぼんにしようと思ってる
- 🏡
- お前らが意地でも田村ゆかりと結婚してあげない理由
