[過去ログ]
C++相談室 part164 (1002レス)
C++相談室 part164 http://mevius.5ch.net/test/read.cgi/tech/1683600652/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
482: デフォルトの名無しさん (オイコラミネオ MM71-9/0y) [sage] 2023/07/15(土) 21:18:25.83 ID:UiYhW/dJM ファーストクラスコレクションの話? http://mevius.5ch.net/test/read.cgi/tech/1683600652/482
483: デフォルトの名無しさん (ワッチョイ df01-L4gQ) [sage] 2023/07/15(土) 21:22:12.84 ID:wfhnDtnz0 単数: datum 複数: data http://mevius.5ch.net/test/read.cgi/tech/1683600652/483
484: デフォルトの名無しさん (オイコラミネオ MM71-9/0y) [sage] 2023/07/15(土) 21:24:39.81 ID:UiYhW/dJM 今日本屋で○○データムと言う本があった DATAの単数形がdatumと言うことにこだわる大人って理系だけなんだろうなと感じたらこれだよ 即出て来た http://mevius.5ch.net/test/read.cgi/tech/1683600652/484
485: デフォルトの名無しさん (ワッチョイ df01-L4gQ) [sage] 2023/07/15(土) 21:35:08.39 ID:wfhnDtnz0 datumに拘ってるのではなくdatasなんて言葉はない http://mevius.5ch.net/test/read.cgi/tech/1683600652/485
486: デフォルトの名無しさん (JP 0H8a-PPvg) [] 2023/07/15(土) 21:43:33.89 ID:2P0YU21lH そこか、英単語をぐぐったら解決しました。 ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1683600652/486
487: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76) [sage] 2023/07/15(土) 21:58:55.40 ID:oCSaktaG0 >>481 場合による。 見せる相手が最初から限定的であるような場合はフレンドを宣言すればいい。 コンテナ系クラスとかは内部的にはたぶんノードを表すクラスとか も使ってると思うけどそういう感じで密接に関連がありつつ 他では使う可能性がないような強い関係性がある場合はフレンドにする。 データを保持するためだけの汎用クラスとして定義するならデータメンバは public にしてもかまわない。 std::pair とかはそうなってる。 もうちょっと疎結合にしたいときなら許したい操作だけをpublic なメンバ関数として公開すると思う。 既存のクラスを使いつつ外部に公開するのはサブセットにしたいという場合なら プライベート継承した上で公開したいメンバだけ using するという方法も取れる。 #include <iostream> #include <vector> struct Data : private std::vector<int> { using std::vector<int>::vector; using std::vector<int>::operator[]; using std::vector<int>::begin; using std::vector<int>::end; }; int main(void) { Data foo = {1, 2, 3}; for (int x : foo) { std::cout << x << std::endl; } } http://mevius.5ch.net/test/read.cgi/tech/1683600652/487
488: デフォルトの名無しさん (ワッチョイ df01-L4gQ) [sage] 2023/07/15(土) 22:04:51.15 ID:wfhnDtnz0 >>481 privateメンバなのだから できるだけ外部からそのコレクションを参照しないように設計するべきだと思うよ どうしてもってならiteratorではなくconst_iteratorにするとか あなたが書いてるようにconst Data&を返すaccessorを実装するとか http://mevius.5ch.net/test/read.cgi/tech/1683600652/488
489: デフォルトの名無しさん (ワッチョイ 847c-zIhc) [sage] 2023/07/15(土) 22:07:48.52 ID:BdK15TwX0 "HogehogeData"という名前で定義されたプログラム上の存在があったら その複数形はHogehogeDatasと呼ぶしかない 気持ち悪くてもしょうがないんだよ http://mevius.5ch.net/test/read.cgi/tech/1683600652/489
490: デフォルトの名無しさん (オイコラミネオ MM71-9/0y) [sage] 2023/07/15(土) 22:15:14.37 ID:UiYhW/dJM ファーストクラスコレクションにしないならその実装は不要だ 基本的に存在意味がない http://mevius.5ch.net/test/read.cgi/tech/1683600652/490
491: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76) [sage] 2023/07/15(土) 22:20:38.51 ID:oCSaktaG0 ワイはプログラミング言語 Scheme を使ってるんやが Scheme の仕様には datum という語が出てくる。 シリアライズの単位に関する概念なのでリストひとつも datum と (つまり単数形で) 呼ばれるのが ちょっとモニョッとする。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/491
492: デフォルトの名無しさん (JP 0H8a-PPvg) [] 2023/07/16(日) 08:28:58.24 ID:PzNRrLhAH どうでもいいことを突っ込んでる人いますけど Datas=>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Data=>aaaaaaaaaaaaaaaa と置換してください http://mevius.5ch.net/test/read.cgi/tech/1683600652/492
493: デフォルトの名無しさん (アウアウウー Sa3a-ZX0e) [] 2023/07/16(日) 09:51:34.88 ID:Po24/3Vva hogehogetoyukainanakamatati で解決 http://mevius.5ch.net/test/read.cgi/tech/1683600652/493
494: デフォルトの名無しさん (ワッチョイ 3279-EJzg) [sage] 2023/07/16(日) 16:16:15.89 ID:z7qY/utw0 powershellはJSONやxmlをその構造のまま扱えたりオブジェクト(PSCustomObject)にも変換できてpythonなんかより小奇麗に書けますよっと >>478だとif ($a.tsaro.age -eq $a.hanako.age) { ... という具合 http://mevius.5ch.net/test/read.cgi/tech/1683600652/494
495: デフォルトの名無しさん (ワッチョイ 3279-EJzg) [sage] 2023/07/16(日) 16:20:50.17 ID:z7qY/utw0 powershellはC#とシームレスに連携する手段もあってpowershellで苦手な再帰処理とかをC#コードに逃がしてpowershell機能を使いたい部分はActionやFuncから呼び出す事もできますよっと http://mevius.5ch.net/test/read.cgi/tech/1683600652/495
496: デフォルトの名無しさん (ワッチョイ 3279-EJzg) [sage] 2023/07/16(日) 16:21:58.50 ID:z7qY/utw0 よく見たらここC++スレだね 俺の事は忘れてください http://mevius.5ch.net/test/read.cgi/tech/1683600652/496
497: デフォルトの名無しさん (ワッチョイ 0928-rP6O) [sage] 2023/07/17(月) 18:33:54.32 ID:mG7BHGLy0 質問なのですがclass Datasというクラスがあってstd:::vector<Datas> vec((size_t)100); であるときに vec[k]の場所にn個の場所を空けたい(値は初期化済Datasオブジェクトなら何でも良い)場合どう書くべき? やっぱ手動でsz = vec.size(); vec.resize(sz + n);して既存要素vec[k..sz-1]を後ろ(vec[k+n..])にコピーする --- (1) のが最速? 仮にstd::vector<T>::insertを使うと Datas x; // (A) vec.insert(std::next(vec.begin(), k), n, x); // (B) になると思うのですが、なんか(A)で不必要にオブジェクトを1個構築せねばならないのと (B)で多分デフォルトコンストラクタではなくコピコンがn回呼ばれるのちょっち嫌 (なぜなら(1)のコピーとn個分の場所の確保に加えて、xをn回コピーするという余デフォルト構築よりも遅そうな処理をするから http://mevius.5ch.net/test/read.cgi/tech/1683600652/497
498: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76) [sage] 2023/07/17(月) 20:23:35.30 ID:YifLUjyU0 >>497 resize だって再配置 (に付随するコピー) の可能性はあるんで どっちでも大差ないんじゃないかな。 楽だと思うほうで書けばいいと思うよ。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/498
499: デフォルトの名無しさん (ワッチョイ 915f-9/0y) [sage] 2023/07/17(月) 21:47:09.31 ID:I9Lq0d6Q0 >>497 無駄なデフォルトコンストラクタやコピーを削って極力ムーブで済ませようと思ったら sz, k, n の大小関係ごとに場合分けして move_iterator 経由の insert とか使い分ければ いけそうだけど、面倒なわりに見合うほど効率改善しそうな気はしない。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/499
500: デフォルトの名無しさん (ワッチョイ 82f0-rqn1) [sage] 2023/07/17(月) 22:08:16.87 ID:kACYNrgv0 書き込みはそこまで遅くないから労力に見合わないだろうね http://mevius.5ch.net/test/read.cgi/tech/1683600652/500
501: デフォルトの名無しさん (スッップ Sd94-v8RM) [sage] 2023/07/17(月) 22:54:28.45 ID:vqJJKRdWd 速度を気にするなら実測しないと始まらないよ。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/501
502: デフォルトの名無しさん (ワッチョイ ae7a-CYkg) [sage] 2023/07/17(月) 23:18:54.88 ID:vGotTgNV0 リアルタイムOSのタスクのように無限ループが前提のとき TASK Task1() { while(1) { Obj1 obj = Device::GetObj(); : : } のようにobjを使う場合に、GetObjが内部でnewされていると、この作りではいつかメモリ不足になってしまいます。 そうなると自作でないクラスのメソッドは使う前にnewの有無をすべて調べなければならなくなるように思います。 実際はそんな不条理はないはずで、このような問題はどう対処するのがいいですか。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/502
503: デフォルトの名無しさん (ワッチョイ df01-L4gQ) [sage] 2023/07/17(月) 23:25:49.78 ID:CT+u9aWW0 >>502 自作でないクラスのメソッドは使う前には メソッドが消費するメモリを見積もらなければなりません 不条理でも何でも無い http://mevius.5ch.net/test/read.cgi/tech/1683600652/503
504: デフォルトの名無しさん (ワッチョイ 0928-rP6O) [sage] 2023/07/17(月) 23:34:05.22 ID:mG7BHGLy0 わかりました http://mevius.5ch.net/test/read.cgi/tech/1683600652/504
505: デフォルトの名無しさん (ワッチョイ 82f0-rqn1) [sage] 2023/07/17(月) 23:42:05.60 ID:kACYNrgv0 自作でないクラスでも使う関数がメモリ動的確保するかどうか普通は確認するぞ http://mevius.5ch.net/test/read.cgi/tech/1683600652/505
506: デフォルトの名無しさん (ワッチョイ 0928-rP6O) [sage] 2023/07/17(月) 23:46:35.71 ID:mG7BHGLy0 >>502 >GetObjが内部でnewされていると、この作りではいつかメモリ不足になってしまいます。 この懸念は普通の作りなら基本的に無用。基本的に問題無い (1) Obj1という型がポインタやハンドルではなくクラスの場合: objはwhile(1) { }のブロックの中で構築されるので ループの終わりでデストラクタが呼ばれる(破棄される)から、 Device::GetObj()が真っ当な作りならnewしたポインタをObj1のインスタンスobjに引き渡し、 Obj1クラスが真っ当な作りならobjが破棄されるときに引き渡されたポインタをdeleteする(ように作る からダングリングポインタは生じない(ようにできる (2) Obj1という型がポインタやハンドルの場合 確保したポインタやハンドルはいずれクローズせねばならない。 ループが次の繰り返しに入る前に確実にクローズすればよい http://mevius.5ch.net/test/read.cgi/tech/1683600652/506
507: デフォルトの名無しさん (ワッチョイ 0928-rP6O) [sage] 2023/07/17(月) 23:47:03.13 ID:mG7BHGLy0 基本的に、というのは(2)のケースで例外が生じたときクローズされずに抜けてしまう危険性があるのと、 (1)のケースにおいてもobj1の構築中に例外が生じた場合はきちんとデストラクトされない危険性がある。 Obj1のメンバがnewされるべき生ポインタの場合はこれは対処不能。生ポはやめてスマポにすればおk 詳しい話ははちみつ餃子氏に聞くと良い(マテ http://mevius.5ch.net/test/read.cgi/tech/1683600652/507
508: デフォルトの名無しさん (ワッチョイ 0928-rP6O) [sage] 2023/07/17(月) 23:58:52.90 ID:mG7BHGLy0 訂正orz、 誤: ループの終わりでデストラクタが呼ばれる(破棄される)から、(>>506 正: ループが次の繰り返しに入る前かループを抜ける際にデストラクタが呼ばれる(破棄される)から http://mevius.5ch.net/test/read.cgi/tech/1683600652/508
509: デフォルトの名無しさん (ワッチョイ 847c-8c0A) [sage] 2023/07/18(火) 00:04:09.43 ID:yoLqrsJ/0 >>502 必要ならそのGetObj()とやらのドキュメントにDevice::ReleaseXyz()とかDevice::ReleaseObj(obj1)とかobj1.release()とかを後で呼ぶように指示されてるはず それを怠ってリークさせたならお前がタコ そういう指示がないくせに勝手にリークするならそのライブラリがタコ そんだけの話 http://mevius.5ch.net/test/read.cgi/tech/1683600652/509
510: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76) [sage] 2023/07/18(火) 00:16:34.06 ID://OyAtPF0 そして使い方がドキュメント化されてないなら組織として問題がある。 が、そういう話はマ板で。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/510
511: 502 (ワッチョイ ae7a-CYkg) [sage] 2023/07/18(火) 00:38:24.79 ID:ibbV/iYr0 皆さんありがとう。 >>506 ブロックスコープは知りつつも、ループのブロックの場合はループ中は寿命が継続すると思っていました。 ループ時に毎度後始末されるなら安心です。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/511
512: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76) [sage] 2023/07/18(火) 01:05:37.37 ID://OyAtPF0 >>511 根拠。 https://timsong-cpp.github.io/cppwp/n3337/basic.stc.auto http://mevius.5ch.net/test/read.cgi/tech/1683600652/512
513: デフォルトの名無しさん (ワッチョイ 3279-EJzg) [sage] 2023/07/18(火) 02:17:55.25 ID:BpIlHiPB0 組み込み用途のライブラリで毎回ループ終端でデストラクタが呼ばれるように普通は設計しないから大丈夫 疑わしいならベンダーに問い合わせるかライブラリのソースを読めば解決 http://mevius.5ch.net/test/read.cgi/tech/1683600652/513
514: デフォルトの名無しさん (ワッチョイ b632-bpoS) [sage] 2023/07/21(金) 16:52:12.91 ID:PleiVI860 ちょいとコイツを見て欲しい。MSVC 14.36.32532でC++17かつセキュリティチェック無効(/GS-) https://i.imgur.com/XGfeBgH.png 最小コードで再現するために、コマンドライン文字列を変な形式として扱ってるのは置いといて 変数rSizeが、引数argcのスタック領域(ebp+8)に割り当てられるんだけど、こんな最適化ある? 確かにargcは用済みだが、レジスタやローカルスタックではなくcdeclのconst引数にストアする? http://mevius.5ch.net/test/read.cgi/tech/1683600652/514
515: デフォルトの名無しさん (ワッチョイ 5cfb-MzNP) [sage] 2023/07/21(金) 16:56:19.42 ID:LKM5BaGE0 そんなことよりbooost向けの技術書について教えてくれ http://mevius.5ch.net/test/read.cgi/tech/1683600652/515
516: 蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd94-5KMR) [sage] 2023/07/21(金) 18:04:39.14 ID:GfD0zzOHd そんな最適化あるよ。長期に渡って解析やってたらときどき出くわすよ。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/516
517: デフォルトの名無しさん (ワッチョイ 82f0-rqn1) [sage] 2023/07/21(金) 18:26:11.73 ID:eD9pKuA20 ADLについて初めて知ったのがboost::mathだった懐かしい http://mevius.5ch.net/test/read.cgi/tech/1683600652/517
518: デフォルトの名無しさん (ワッチョイ 847c-8c0A) [sage] 2023/07/21(金) 20:33:22.11 ID:9+qEAU5C0 観測可能な範囲で規格通りの挙動をする限りは、コンパイラ様はどんなバイナリを吐こうとどんな風にメモリやレジスタを扱おうと自由なのだ http://mevius.5ch.net/test/read.cgi/tech/1683600652/518
519: デフォルトの名無しさん (ワッチョイ a728-Nt2/) [sage] 2023/07/22(土) 11:54:04.91 ID:1sMnnOgP0 if文の条件式のところにがっつり文が書かれてゐる 最後の式の値が結果、とかますますPerl的世界に…… そのうち値を返す関数もreturn書かなくて良くなったりして…… http://mevius.5ch.net/test/read.cgi/tech/1683600652/519
520: デフォルトの名無しさん (ワッチョイ 473e-8suU) [sage] 2023/07/22(土) 12:15:40.55 ID:QLIAp4G50 >>519 任意の文を書けるわけではなく単純宣言に限られる。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/520
521: デフォルトの名無しさん (ワッチョイ 0710-XcQ/) [sage] 2023/07/22(土) 13:25:58.60 ID:uVFJqD+w0 うん。なんか「見てくれ」とか言うから見たけどサンプルとしてもしょーもないコードだなと思って 一度コメントしかけてやめた windowsのxx仕様 独自mainとか http://mevius.5ch.net/test/read.cgi/tech/1683600652/521
522: デフォルトの名無しさん (ワッチョイ 0710-XcQ/) [sage] 2023/07/22(土) 13:27:45.64 ID:uVFJqD+w0 自分が本当に答えを知りたいんじゃなくて、フレームというか、言い争いを起こして面白がりたいのかな、とか http://mevius.5ch.net/test/read.cgi/tech/1683600652/522
523: デフォルトの名無しさん (ワッチョイ a728-Nt2/) [sage] 2023/07/22(土) 15:21:09.39 ID:1sMnnOgP0 やっぱ void foo() { for (int i = 0; i < 100; i++) { .... } for (int ii = 0; ii < 100; ii++) { ... } ... for (int iiiiiiiiiiiiiiiiiiii = 0; iiiiiiiiiiiiiiiiiiii < 100; iiiiiiiiiiiiiiiiiiii++) { ... } } とかあってどのfor文でもループ変数のアドレスをとるような式が書かれていなかったら ローカル変数i、ii、...、iiiiiiiiiiiiiiiiiiが違うアドレスでなければならない理由は何も無いから 同じアドレスに割り当てになる可能性は高いと思う でデータフロー解析するステップではもはやブロックの構造とか渡ってないから そういう芸当をする同じロジックが>>514のようなことも当然するキモス ※ 個人の感想です http://mevius.5ch.net/test/read.cgi/tech/1683600652/523
524: デフォルトの名無しさん (ワッチョイ a728-Nt2/) [sage] 2023/07/22(土) 15:31:39.00 ID:1sMnnOgP0 ていうか補足、 void bar(int& x); というのがあって for (int i = 0; i < 100; i++) { bar(i); } for (int ii = 0; ii < 100; ii++) { bar(ii); } for (int iiiiiiiiiiiiiiiiiiii = 0; iiiiiiiiiiiiiiiiiiii < 100; ii++) { bar(iiiiiiiiiiiiiiiiiiii); } だった場合はこれは明示的にループ変数のアドレスをとっているわけではないが、 アドレスをとっているのと同じことなので i、ii、...、iiiiiiiiiiiiiiiiii同じアドレスに割り当てになる可能性は無くなると思う よかったなあ>>514、 http://mevius.5ch.net/test/read.cgi/tech/1683600652/524
525: デフォルトの名無しさん (ワッチョイ a728-Nt2/) [sage] 2023/07/22(土) 15:33:20.61 ID:1sMnnOgP0 しかしわからんのは void bar(const int& x); // const ! だった場合は for (int i = 0; i < 100; i++) { bar(i); } for (int ii = 0; ii < 100; ii++) { bar(ii); } for (int iiiiiiiiiiiiiiiiiiii = 0; iiiiiiiiiiiiiiiiiiii < 100; ii++) { bar(iiiiiiiiiiiiiiiiiiii); } だった場合はi、ii、...、iiiiiiiiiiiiiiiiiiが同じアドレスに割り当てられ得るのかどうかわわからん…… http://mevius.5ch.net/test/read.cgi/tech/1683600652/525
526: デフォルトの名無しさん (ワッチョイ a728-Nt2/) [sage] 2023/07/22(土) 15:41:23.03 ID:1sMnnOgP0 ゴメ自己解決しますたorz http://mevius.5ch.net/test/read.cgi/tech/1683600652/526
527: デフォルトの名無しさん (ワッチョイ 5f32-vVS+) [sage] 2023/07/22(土) 17:02:04.17 ID:lBkog51W0 スコープを抜けたローカル変数であれば順当な割り当てに思えるのだけど >>514が差し支えるのはコードインジェクションで引数を使い回すとかの横着 さりとてトップレベルのconstやvolatileは関数シグネチャに現れない訳で cdeclであろうと引数の寿命は関数を抜けるまでだろうから極めて妥当なのか? 14.27.29110ではやらず、スタック量は逆に増え…増えたから節約してるのか rbp+なら…いやそれも引数用スタック。C++20でvolatile非推奨化は有ったが volatile引数への代入も引数スタックへの書き込みと思っちゃならんのかな http://mevius.5ch.net/test/read.cgi/tech/1683600652/527
528: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) [sage] 2023/07/22(土) 18:07:10.54 ID:QLIAp4G50 >>527 言いたいことがあるなら独り言を書くんじゃなくて説明しろ。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/528
529: デフォルトの名無しさん (ワッチョイ bf42-vVS+) [sage] 2023/07/22(土) 18:59:44.13 ID:h3Z+iL0O0 >>528 どの部分ですか?rbp+のくだりならx64であればシャドウストアを呼び出し元が確保する事になっているので 引数へ代入以外でもrbp+に書き込まれるが、それにしたって引数の退避以外で行われるかという意味だけど またこの最適化が適正だとすれば引数へconstを指定しても それは引数の格納元が書き換わらない事を意味しない訳で volatileにしても引数スタックと同一視は出来ないのかなと http://mevius.5ch.net/test/read.cgi/tech/1683600652/529
530: デフォルトの名無しさん (テテンテンテン MM8f-TfYz) [sage] 2023/07/22(土) 19:01:30.20 ID:gun3EJ7PM >>519 resultは欲しいね。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/530
531: デフォルトの名無しさん (ワッチョイ 875f-UuLb) [sage] 2023/07/22(土) 19:08:50.81 ID:nQhdUCcc0 とりあえずcallee-savedとcaller-savedあたりでググってこい http://mevius.5ch.net/test/read.cgi/tech/1683600652/531
532: デフォルトの名無しさん (ワッチョイ 473e-8suU) [sage] 2023/07/22(土) 19:21:42.17 ID:QLIAp4G50 >>529 技術的な意味合いじゃなくてね、 それをのべてどうしたいのってことだよ。 疑問なのか?主張なのか?感想なのか? http://mevius.5ch.net/test/read.cgi/tech/1683600652/532
533: デフォルトの名無しさん (ワッチョイ bf79-mRrB) [sage] 2023/07/22(土) 23:38:20.21 ID:a8PwsTyx0 これだけは言っておく 文章が下手糞はプログラミングも下手糞ってことだ http://mevius.5ch.net/test/read.cgi/tech/1683600652/533
534: デフォルトの名無しさん (ワッチョイ dff0-lmMR) [sage] 2023/07/22(土) 23:53:10.56 ID:31w2/Kbx0 久々にヤバい変数名を見た >>525 このクソみたいな変数名はおまえが考えたのか http://mevius.5ch.net/test/read.cgi/tech/1683600652/534
535: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) [sage] 2023/07/23(日) 01:23:57.19 ID:3Ckw8KVE0 >>533 母語で説明できないようならプログラマには向いてないとかいう意味のことをダイクストラが言ってたな。 普通の人は母語が最も得意なはずだからそれで表現できないのに プログラミング言語でなら表現できるってことはないのは道理というものだ。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/535
536: デフォルトの名無しさん (スップ Sd7f-d+yq) [sage] 2023/07/23(日) 07:00:15.87 ID:TPcdF2Bwd 二、三個違えて大域変数切って火に油注ぎたくなるやつ http://mevius.5ch.net/test/read.cgi/tech/1683600652/536
537: デフォルトの名無しさん (ワッチョイ dff0-FYg4) [sage] 2023/07/24(月) 22:04:55.27 ID:7/Qlh6bu0 さんざん言われてるけど質問文きちんと書ける人はChatGPTで自己完結しちゃうんだよな http://mevius.5ch.net/test/read.cgi/tech/1683600652/537
538: デフォルトの名無しさん (ワッチョイ a728-Nt2/) [sage] 2023/07/25(火) 00:09:45.61 ID:ngER/Udx0 ゴメス>>524はリリースビルドしたら全部同じアドレスになったわ;;; やっぱ握った変数なりオブジェクトなりのアドレスを その変数なりオブジェクトなりの寿命が尽きた後に 使おうとするのは未定義動作であることだなあ、 http://mevius.5ch.net/test/read.cgi/tech/1683600652/538
539: デフォルトの名無しさん [sage] 2023/07/25(火) 03:57:53.89 ID:YH2RVZct0 俺には>>524がなんでそんな結論になるのか分からんのだが for内で i を宣言してるんだからfor のスコープを持つローカル変数だろ? int が4バイトの前提で言えば for 突入時に int i をスタック上に確保(スタックポインタを4バイトマイナス)して for 離脱時に int i の領域を解放(スタックポインタを4バイトプラス)する この繰り返しなんだから int i や int ii のアドレスが同じになることに疑問を挟む余地がないと思うんだけど 何がおかしいのか俺にはさっぱり分からん http://mevius.5ch.net/test/read.cgi/tech/1683600652/539
540: デフォルトの名無しさん (アウアウウー Sa2b-tGd7) [sage] 2023/07/25(火) 09:19:21.66 ID:k8WJtY+Ua for の i がローカルになったのは最近 グローバルに盛れるコンパイラ環境は巷に溢れていた http://mevius.5ch.net/test/read.cgi/tech/1683600652/540
541: デフォルトの名無しさん (アウアウウー Sa2b-tGd7) [] 2023/07/25(火) 09:19:57.50 ID:k8WJtY+Ua 盛れるじゃなかった 漏れる http://mevius.5ch.net/test/read.cgi/tech/1683600652/541
542: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) [sage] 2023/07/25(火) 11:10:04.37 ID:akUn9hsS0 >>540 最近っていつ頃のことだ? http://mevius.5ch.net/test/read.cgi/tech/1683600652/542
543: デフォルトの名無しさん (ワッチョイ dff0-POqA) [sage] 2023/07/25(火) 11:32:44.39 ID:YIf2r9Dz0 #define for if(0) else for http://mevius.5ch.net/test/read.cgi/tech/1683600652/543
544: デフォルトの名無しさん (ワッチョイ dff0-POqA) [sage] 2023/07/25(火) 11:34:38.41 ID:YIf2r9Dz0 間違えた #define for if(0) {} else for これでゾンビiよく消してた http://mevius.5ch.net/test/read.cgi/tech/1683600652/544
545: デフォルトの名無しさん (ワッチョイ 0710-PxlL) [sage] 2023/07/25(火) 12:01:03.86 ID:RkQ0FrMx0 >>544 ごめん、まじめに教えて これ何の意図? これに意味がある具体的なコンパイラって何の何version? http://mevius.5ch.net/test/read.cgi/tech/1683600652/545
546: デフォルトの名無しさん (ワッチョイ dff0-POqA) [sage] 2023/07/25(火) 12:08:13.03 ID:YIf2r9Dz0 VC++6.0という大昔にデファクトスタンダードだったコンパイラだ http://mevius.5ch.net/test/read.cgi/tech/1683600652/546
547: デフォルトの名無しさん (ワッチョイ 0710-PxlL) [sage] 2023/07/25(火) 12:10:00.81 ID:RkQ0FrMx0 >>546 ほんとにごめん、何の意味があるの? http://mevius.5ch.net/test/read.cgi/tech/1683600652/547
548: デフォルトの名無しさん (ワッチョイ dff0-POqA) [sage] 2023/07/25(火) 12:12:51.37 ID:YIf2r9Dz0 例外飛ばすと自動変数の破棄全部ふっ飛ばして戻ってくる酷いポンコツだったな よくこんなの皆つかってたなというかコレしかなかったからな http://mevius.5ch.net/test/read.cgi/tech/1683600652/548
549: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) [sage] 2023/07/25(火) 12:13:49.52 ID:akUn9hsS0 >>545 for の初期化節で変数宣言した場合にその外側のブロックがスコープになるコンパイラが存在し、 その対抗策としてこういうマクロを導入するという方法があったという話だろ。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/549
550: デフォルトの名無しさん (ワッチョイ dff0-POqA) [sage] 2023/07/25(火) 12:14:32.19 ID:YIf2r9Dz0 >>547 意味がわからないなら知らなくていい 当時を知らないなら理解しようとするだけ無駄というもの http://mevius.5ch.net/test/read.cgi/tech/1683600652/550
551: デフォルトの名無しさん (ワッチョイ 0710-PxlL) [sage] 2023/07/25(火) 12:24:31.68 ID:RkQ0FrMx0 >>549 ありがとう、そしてありがとう >>548 VC6がポンコツは同意。 あのころMSはディンカムウェアからstd c,c++ ライブラリを買って導入してたけど、そもそもc++の仕様準拠がメチャクチャだったと認識してます もうVC使わなくなって長いので気にしなくなった http://mevius.5ch.net/test/read.cgi/tech/1683600652/551
552: デフォルトの名無しさん (ワッチョイ 0710-PxlL) [sage] 2023/07/25(火) 12:39:41.95 ID:RkQ0FrMx0 『for内スコープ』の仕様にvc6は未対応だ、という事実を認識し 責任者がvc6を選択した案件で納品する なら、その条件に従って書く(つまらないつまづきに繋がる書き方を避ける)のが他者に対して親切な技術者だと思うが 「そういう話はマ板で」か http://mevius.5ch.net/test/read.cgi/tech/1683600652/552
553: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) [sage] 2023/07/25(火) 12:56:14.20 ID:akUn9hsS0 >>551 言語仕様が改訂されたんだよ。 C++98 が成立するちょっと前まで for 文の外側のブロックをスコープとするルールで正しかった。 ARM (The Annotated C++ Reference Manual) でも旧ルールで説明されている。 VC の出来が悪かったのは事実だと思うが スコープルールに関しては互換性を是とするウィンドウズの価値観に合わせて 意図的に変更を遅らせたのだと思う。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/553
554: デフォルトの名無しさん (ワイーワ2 FF9f-fo+T) [sage] 2023/07/25(火) 14:00:38.34 ID:uSv6E5akF いと懐かしき http://mevius.5ch.net/test/read.cgi/tech/1683600652/554
555: デフォルトの名無しさん (ワッチョイ 8702-Jlgx) [sage] 2023/07/25(火) 14:23:07.06 ID:kV+p+cpE0 Visual C++ 6.0がリリースされたのが1998年じゃん 25年前じゃん。全然最近じゃないじゃん 遠い過去のことをつい最近って話すのはやめてほしいね http://mevius.5ch.net/test/read.cgi/tech/1683600652/555
556: デフォルトの名無しさん (ワッチョイ a701-Fb4F) [sage] 2023/07/25(火) 14:31:50.00 ID:MikqYz6X0 >>555 だまれ小僧! 最近じゃよ http://mevius.5ch.net/test/read.cgi/tech/1683600652/556
557: デフォルトの名無しさん (ワッチョイ df32-8suU) [sage] 2023/07/25(火) 14:44:27.15 ID:vokyohz+0 20年くらいまえのソースコードだったら 読む機会がないわけでもないからなぁ。 最近と言えるかどうかはともかくとして 経緯を知っておくに越したことはない http://mevius.5ch.net/test/read.cgi/tech/1683600652/557
558: デフォルトの名無しさん (アウアウウー Sa2b-QKap) [sage] 2023/07/25(火) 14:44:43.95 ID:iTChcdyRa 25年前に30代だった人の多いスレ http://mevius.5ch.net/test/read.cgi/tech/1683600652/558
559: デフォルトの名無しさん (ラクッペペ MM8f-pwGU) [sage] 2023/07/25(火) 14:54:13.97 ID:218oSqZIM 現役世代なら25年前なら20代 http://mevius.5ch.net/test/read.cgi/tech/1683600652/559
560: デフォルトの名無しさん (ワッチョイ a701-Fb4F) [sage] 2023/07/25(火) 14:55:29.80 ID:MikqYz6X0 だまれ小僧ども! http://mevius.5ch.net/test/read.cgi/tech/1683600652/560
561: デフォルトの名無しさん (ワッチョイ dff0-FYg4) [sage] 2023/07/25(火) 16:16:06.83 ID:uXZxGhnB0 おじいちゃんかな入力使ってそう http://mevius.5ch.net/test/read.cgi/tech/1683600652/561
562: デフォルトの名無しさん (ワッチョイ 473e-8suU) [sage] 2023/07/25(火) 16:50:53.20 ID:akUn9hsS0 リアルで トントカイモ をやったことある世代だわ…… http://mevius.5ch.net/test/read.cgi/tech/1683600652/562
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 440 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s