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
325デフォルトの名無しさん
2020/04/23(木) 18:20:26.60ID:/EdNitWt 1+2*3
は警告が出ないのに
1<<2+3
は警告が出るとか
色々と恣意的
は警告が出ないのに
1<<2+3
は警告が出るとか
色々と恣意的
326デフォルトの名無しさん
2020/04/23(木) 18:27:20.31ID:mq+N4KeF そりゃwarningだもの
コンパイラーごとに親切心でやってるだけじゃん
コンパイラーごとに親切心でやってるだけじゃん
327デフォルトの名無しさん
2020/04/23(木) 18:33:48.11ID:StmE//V5 >>324
自己初期化?
自己初期化?
328デフォルトの名無しさん
2020/04/23(木) 18:34:10.45ID:/EdNitWt 親切心じゃなくて趣味の押し付けみたいな物も多い
329デフォルトの名無しさん
2020/04/23(木) 18:35:02.85ID:HERx4kEF ch = 1;
がどうしてエラーにならないのか、CやC++の古い仕様仕様書からは見つけることが出来なかった。
がどうしてエラーにならないのか、CやC++の古い仕様仕様書からは見つけることが出来なかった。
330デフォルトの名無しさん
2020/04/23(木) 18:35:11.36ID:mq+N4KeF331デフォルトの名無しさん
2020/04/23(木) 18:35:53.67ID:mq+N4KeF >>329
c++が型安全だとなぜ思った?
c++が型安全だとなぜ思った?
332はちみつ餃子 ◆8X2XSCHEME
2020/04/23(木) 20:49:08.20ID:Fyt21a0c >>329
古い仕様っていつのやつ?
とりあえず JISX3010:2003 (C99 に相当) を見る限りでは規定はある。
関連しそうなところを抜粋したので細かいことは周辺を確認してね。
> 6.7.8 初期化
> 型の制限及び型変換は、単純代入と同じとする。
> 6.5.16.1 単純代入
> 右オペランドの値を代入式の型に型変換し、左オペランドで指し示される
> オブジェクトに格納されている値をこの値で置き換える。
> 6.3.1.3
> 整数型の値を _Bool 型以外の他の整数型に変換する場合、
> その値が新しい型で表現可能なとき、値は変化しない。
> 新しい型で表現できない場合、新しい型が符号無し整数型であれば、
> 新しい型で表現しうる最大の数に 1 加えた数を加えることまたは
> 減じることを、新しい型の範囲に入るまで繰り返すことによって得られる
> 値に変換する。
> そうでない場合、すなわち、新しい型が符号付き整数型であって、
> 値がその型で表現できない場合は、結果が処理系定義の値となるか、
> 又は処理系定義のシグナルを生成するかのいずれかとする。
そんなわけで、変換後が unsigned の場合はどんな値に変化するか既定があるし、
signed の場合は表現できる範囲内では値は変化しないから問題ない。
表現できない値になってるかどうかは基本的に実行時までわからんから
コンパイル時には黙って通す (わかるときは警告する) って感じ。
古い仕様っていつのやつ?
とりあえず JISX3010:2003 (C99 に相当) を見る限りでは規定はある。
関連しそうなところを抜粋したので細かいことは周辺を確認してね。
> 6.7.8 初期化
> 型の制限及び型変換は、単純代入と同じとする。
> 6.5.16.1 単純代入
> 右オペランドの値を代入式の型に型変換し、左オペランドで指し示される
> オブジェクトに格納されている値をこの値で置き換える。
> 6.3.1.3
> 整数型の値を _Bool 型以外の他の整数型に変換する場合、
> その値が新しい型で表現可能なとき、値は変化しない。
> 新しい型で表現できない場合、新しい型が符号無し整数型であれば、
> 新しい型で表現しうる最大の数に 1 加えた数を加えることまたは
> 減じることを、新しい型の範囲に入るまで繰り返すことによって得られる
> 値に変換する。
> そうでない場合、すなわち、新しい型が符号付き整数型であって、
> 値がその型で表現できない場合は、結果が処理系定義の値となるか、
> 又は処理系定義のシグナルを生成するかのいずれかとする。
そんなわけで、変換後が unsigned の場合はどんな値に変化するか既定があるし、
signed の場合は表現できる範囲内では値は変化しないから問題ない。
表現できない値になってるかどうかは基本的に実行時までわからんから
コンパイル時には黙って通す (わかるときは警告する) って感じ。
333デフォルトの名無しさん
2020/04/24(金) 02:20:09.80ID:UPXGgu7R >>332
> 右オペランドの値を代入式の型に型変換し、左オペランドで指し示される
> オブジェクトに格納されている値をこの値で置き換える。
C++において、
char ch;
int i;
に対し、
ch = i;
はエラーになるけど、それは左辺と右辺で型が違っているから。
つまり、C++では、単純代入演算子 x = y において、「型変換」は自動的には行われない。
> 右オペランドの値を代入式の型に型変換し、左オペランドで指し示される
> オブジェクトに格納されている値をこの値で置き換える。
C++において、
char ch;
int i;
に対し、
ch = i;
はエラーになるけど、それは左辺と右辺で型が違っているから。
つまり、C++では、単純代入演算子 x = y において、「型変換」は自動的には行われない。
334デフォルトの名無しさん
2020/04/24(金) 02:23:37.80ID:UPXGgu7R >>333
pure Cにおいても、
int x;
char *ptr;
x = ptr;
や
int *pInt;
char *ptr;
pInt = ptr;
は
どちらもエラーになる。
だから、pure C の代入演算子に置いても、型変換がエラーも出ずに自動的に行われるわけではない。
pure Cにおいても、
int x;
char *ptr;
x = ptr;
や
int *pInt;
char *ptr;
pInt = ptr;
は
どちらもエラーになる。
だから、pure C の代入演算子に置いても、型変換がエラーも出ずに自動的に行われるわけではない。
335デフォルトの名無しさん
2020/04/24(金) 05:55:11.40ID:UB0Nvahs336デフォルトの名無しさん
2020/04/24(金) 07:54:02.46ID:Sh3Vy8vg >>333
なんでそんな自信満々なん?これコンパイル通るぞ
int main(){
char ch = 0;
int i = 1;
ch = i;
std::cout << +ch << std::endl;
return 0;
}
なんでそんな自信満々なん?これコンパイル通るぞ
int main(){
char ch = 0;
int i = 1;
ch = i;
std::cout << +ch << std::endl;
return 0;
}
337デフォルトの名無しさん
2020/04/24(金) 10:31:54.61ID:FFBNt2WC unsigned char のときだな
338はちみつ餃子 ◆8X2XSCHEME
2020/04/24(金) 10:33:37.57ID:/uuSllCQ >>333
初期化・代入のどちらにおいても int から char へは暗黙に型変換される。
https://timsong-cpp.github.io/cppwp/n3337/expr.ass#3
https://timsong-cpp.github.io/cppwp/n3337/dcl.init#16.8
https://timsong-cpp.github.io/cppwp/n3337/conv.integral
初期化・代入のどちらにおいても int から char へは暗黙に型変換される。
https://timsong-cpp.github.io/cppwp/n3337/expr.ass#3
https://timsong-cpp.github.io/cppwp/n3337/dcl.init#16.8
https://timsong-cpp.github.io/cppwp/n3337/conv.integral
339デフォルトの名無しさん
2020/04/24(金) 11:53:55.91ID:VnmHvJrT エラーじゃなくてワーニングなんだろ多分
しっかりラーニングしておけよ
しっかりラーニングしておけよ
340デフォルトの名無しさん
2020/04/24(金) 11:59:13.94ID:X9QPCPhF c++は型安全おじさん誕生
341デフォルトの名無しさん
2020/04/24(金) 12:36:28.71ID:TokoipqW 今月のインターフェースでC++は型なし言語と紹介されていた。
種なしって言われたみたいで悲しい…
種なしって言われたみたいで悲しい…
342デフォルトの名無しさん
2020/04/24(金) 14:00:39.93ID:om9P6Ux9 型があることにも、ないことにもできるのがC/C++の良いところ
まあしかし世の中には反りの合わない人がいるもので
そういうところを酷評する意見も当然出てくる
まあしかし世の中には反りの合わない人がいるもので
そういうところを酷評する意見も当然出てくる
343デフォルトの名無しさん
2020/04/24(金) 14:05:22.39ID:A9aEYiqd c++が悪いんやない!cの型システムが壊れてるからや!
みたいな主張は聞いたことある。
まあしかし互換性がウリですからね。。
みたいな主張は聞いたことある。
まあしかし互換性がウリですからね。。
344デフォルトの名無しさん
2020/04/24(金) 15:11:32.57ID:UPXGgu7R むしろ、型を壊したのは C++ の方だと思うが。
autoとかで。
autoとかで。
345デフォルトの名無しさん
2020/04/24(金) 15:14:13.63ID:UPXGgu7R >>335
C++では、
void *ptr;
CPerson *pPerson;
に対して、
pPerson = ptr;
はエラーになるはず。
だから、C++では
CPerson *pPerson = malloc(sizeof(CPerson));
がエラーになるのだから。
pure Cではならなかったが。
また、
CBase *pBase;
CDerived *pDerived;
に対して、
pDerived = pBase;
もエラーになるはずだ。
C++では、
void *ptr;
CPerson *pPerson;
に対して、
pPerson = ptr;
はエラーになるはず。
だから、C++では
CPerson *pPerson = malloc(sizeof(CPerson));
がエラーになるのだから。
pure Cではならなかったが。
また、
CBase *pBase;
CDerived *pDerived;
に対して、
pDerived = pBase;
もエラーになるはずだ。
346デフォルトの名無しさん
2020/04/24(金) 15:15:40.17ID:UPXGgu7R >>343
何か勘違いしているようだが、人気が有ったのはpure Cの方だからね。
今のC++の人気は、pure Cの人気を引き継いだだけ。
そしてC++が変な拡張を繰り返したからこそ、人気にかげりが見えてきている。
何か勘違いしているようだが、人気が有ったのはpure Cの方だからね。
今のC++の人気は、pure Cの人気を引き継いだだけ。
そしてC++が変な拡張を繰り返したからこそ、人気にかげりが見えてきている。
347デフォルトの名無しさん
2020/04/24(金) 15:16:31.43ID:om9P6Ux9348デフォルトの名無しさん
2020/04/24(金) 15:19:58.74ID:TokoipqW >>346
そのコメント343宛でよいの?
そのコメント343宛でよいの?
349デフォルトの名無しさん
2020/04/24(金) 16:02:04.89ID:3fWjsT92 autoは要らない子
350デフォルトの名無しさん
2020/04/24(金) 16:06:41.58ID:h2kPOcUM auto使ってない人なんて実在するのか?
351デフォルトの名無しさん
2020/04/24(金) 16:22:47.89ID:UPXGgu7R >>341
どう書いてあったか詳しく聞いてみたい。
どう書いてあったか詳しく聞いてみたい。
352デフォルトの名無しさん
2020/04/24(金) 17:35:30.22ID:UB0Nvahs353はちみつ餃子 ◆8X2XSCHEME
2020/04/24(金) 17:42:51.85ID:/uuSllCQ354デフォルトの名無しさん
2020/04/24(金) 18:14:30.78ID:UPXGgu7R >>353
馬鹿ですか?
馬鹿ですか?
355デフォルトの名無しさん
2020/04/24(金) 18:22:23.35ID:JqJmAzM2356デフォルトの名無しさん
2020/04/25(土) 07:51:21.81ID:McBhOj36 >>351
コンパイル時にすべての変数の型が確定しないc++は弱い型付けだから型無し言語に分類だって。
コンパイル時にすべての変数の型が確定しないc++は弱い型付けだから型無し言語に分類だって。
358デフォルトの名無しさん
2020/04/25(土) 11:27:52.58ID:nL0CusKX 5月号のこと?
359デフォルトの名無しさん
2020/04/25(土) 11:29:47.36ID:4nLfPOGM トラ枝?
360デフォルトの名無しさん
2020/04/25(土) 11:29:54.96ID:nL0CusKX361デフォルトの名無しさん
2020/04/25(土) 19:17:45.69ID:45wIze2e アムウェイで地味に成功してた僕が業界の裏側を暴露してみた
https://www.youtube.com/watch?v=98udsqJihkA
年間300万円稼げてたのにアムウェイをやめた理由
https://www.youtube.com/watch?v=-H_dBzeJeUM
【体験談】元DDがAmwayで稼ぐのが難しい理由を解説してみた【元ガチ勢】
https://www.youtube.com/watch?v=SpzJEddQOdE
【借金地獄】マルチ商法で死の淵から生還して得たもの失ったもの【ビジネス論】
https://www.youtube.com/watch?v=UxriU-TOrMY
あの頃アムウェイはじめちゃったきっかけ【元ガチ勢】
https://www.youtube.com/watch?v=H9C4n4pL03U
私がネットワークビジネスを勧めない理由とは?
https://www.youtube.com/watch?v=hQNkcfhzv18
https://www.youtube.com/watch?v=98udsqJihkA
年間300万円稼げてたのにアムウェイをやめた理由
https://www.youtube.com/watch?v=-H_dBzeJeUM
【体験談】元DDがAmwayで稼ぐのが難しい理由を解説してみた【元ガチ勢】
https://www.youtube.com/watch?v=SpzJEddQOdE
【借金地獄】マルチ商法で死の淵から生還して得たもの失ったもの【ビジネス論】
https://www.youtube.com/watch?v=UxriU-TOrMY
あの頃アムウェイはじめちゃったきっかけ【元ガチ勢】
https://www.youtube.com/watch?v=H9C4n4pL03U
私がネットワークビジネスを勧めない理由とは?
https://www.youtube.com/watch?v=hQNkcfhzv18
362デフォルトの名無しさん
2020/04/25(土) 19:26:23.55ID:siKm6MFQ >>361
グロ
グロ
363デフォルトの名無しさん
2020/04/25(土) 19:45:42.98ID:zwQe2okb auto it = unique(
vecVisibilityPolygonPoints.begin(),
vecVisibilityPolygonPoints.end(),
[&](const tuple<float, float, float> &t1, const tuple<float, float, float> &t2)
{
return fabs(get<1>(t1) - get<1>(t2)) < 0.1f && fabs(get<2>(t1) - get<2>(t2)) < 0.1f;
});
vecVisibilityPolygonPoints.resize(distance(vecVisibilityPolygonPoints.begin(), it));
のresize()から意味がよくわからないのですが、
{0.1, 0.11, 0.2, 0.21, 0.4, 0.41}
↓
{0.1, 0.2, 0.4}
なことでしょうか?
vecVisibilityPolygonPoints.begin(),
vecVisibilityPolygonPoints.end(),
[&](const tuple<float, float, float> &t1, const tuple<float, float, float> &t2)
{
return fabs(get<1>(t1) - get<1>(t2)) < 0.1f && fabs(get<2>(t1) - get<2>(t2)) < 0.1f;
});
vecVisibilityPolygonPoints.resize(distance(vecVisibilityPolygonPoints.begin(), it));
のresize()から意味がよくわからないのですが、
{0.1, 0.11, 0.2, 0.21, 0.4, 0.41}
↓
{0.1, 0.2, 0.4}
なことでしょうか?
364デフォルトの名無しさん
2020/04/25(土) 20:03:25.46ID:NvgVRl2l >vecVisibilityPolygonPoints
std::vector<T>のハンガリアン記法での接頭辞vecで良いんだっけ…
Tの情報はどう埋め込めば良いんじゃ…
毎回悩むのでJISか何かで決めてホスイ
std::vector<T>のハンガリアン記法での接頭辞vecで良いんだっけ…
Tの情報はどう埋め込めば良いんじゃ…
毎回悩むのでJISか何かで決めてホスイ
365デフォルトの名無しさん
2020/04/25(土) 20:32:53.50ID:/7S9hKw7 erase使わずにresize使う人始めてみたわ
366デフォルトの名無しさん
2020/04/25(土) 22:11:42.84ID:NvgVRl2l >erase使わずにresize使う人始めてみたわ
ハア?(゚Д゚)ハァ?
ハア?(゚Д゚)ハァ?
367デフォルトの名無しさん
2020/04/25(土) 22:34:29.10ID:siKm6MFQ >>364
vecなんて付けずにvisibilityPolygonPoints でいいんじゃね。システムハンガリアンは不要または有害だと言われるようになって久しいだろう。
処理の都合上、別のコンテナからvectorに詰め替えたとかでvectorであることに強い意味がある状況なら、vecをつけて元の変数と区別する意味はあると思うけど。
vecなんて付けずにvisibilityPolygonPoints でいいんじゃね。システムハンガリアンは不要または有害だと言われるようになって久しいだろう。
処理の都合上、別のコンテナからvectorに詰め替えたとかでvectorであることに強い意味がある状況なら、vecをつけて元の変数と区別する意味はあると思うけど。
368デフォルトの名無しさん
2020/04/25(土) 22:56:50.00ID:WEavO2K3 auto使ってハンガリアンとかなんか間違ってるわな。
369デフォルトの名無しさん
2020/04/25(土) 23:00:45.13ID:/7S9hKw7 確かにvectorだと処理量変わらんな
370デフォルトの名無しさん
2020/04/25(土) 23:11:24.83ID:/7S9hKw7 >>363
3要素のvectorでyzの値が近いものを同一と見なして削除する処理なのかね
unique前のsortどうしてんのか謎だけど
uniqueは重複したものは一つだけ残して前にuniqueなデータを集め、後半にゴミを集める
戻り値はゴミの開始iterator
resize部分はゴミを消す処理
一般的にはerase使ったerase-remove_ifイディオムの変形だな
3要素のvectorでyzの値が近いものを同一と見なして削除する処理なのかね
unique前のsortどうしてんのか謎だけど
uniqueは重複したものは一つだけ残して前にuniqueなデータを集め、後半にゴミを集める
戻り値はゴミの開始iterator
resize部分はゴミを消す処理
一般的にはerase使ったerase-remove_ifイディオムの変形だな
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 についてはリークするとは書いていませんね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 一律現金給付も消費減税もなし 高市内閣の経済対策に割れる世論 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 津波警報の発表中にグーグル検索、AIが「すべて解除」と誤情報 [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 【実況】博衣こよりのえちえち朝活🧪 2
- 【実況】博衣こよりのえちえち朝活🧪
- 【高市悲報】日本人のTikTokアカウントが続々収益化剥奪中!!乞食どもざまああああああああwwwwwww [394917828]
- ネトウヨ「中国は政府が人民に金使って世論操作のヤラセ書き込みをさせている国。」 [153490809]
- 残クレマイホーム爆誕 [715715613]
- 「早稲田の恥」 ⬅︎誰を思い浮かべた? [279254606]
