- 1 名前:デフォルトの名無しさん (ワッチョイ efda-9b8G) mailto:sage [2023/10/31(火) 07:37:38.52 ID:+ZyYyqMO0.net]
- !extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512 ↑同じ内容を3行貼り付けること 次スレは>>980が立てること 無理なら細かく安価指定 ※前スレ C++相談室 part164 https://mevius.5ch.net/test/read.cgi/tech/1683600652/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 545 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 17:48:03.99 ID:cLh8//6O0.net]
- 単にリンクするだけではどっちかのライブラリのスタートアップしか呼ばれないから
呼ばれてない方のライブラリの初期化がされなくてまともに動作しない問題が残ると思う
- 546 名前:はちみつ餃子 mailto:sage [2024/11/10(日) 18:18:05.60 ID:R/A45v0+0.net]
- 仮にどうにか辻褄合わせが出来てちゃんと動いたとしても将来の開発環境・実行環境でどうなるか予想しづらいというのもある。
- 547 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 18:55:50.75 ID:g8WH2rn90.net]
- こういう感じの実装を見かけたんだけど、ptrって解放済みの領域を指してないよね?
int *ptr = NULL; std::map<char, int> m; m.insert(std::make_pair('a', 30)); { std::map<char, int>::iterator itr = m.find('a'); if (itr != m.end()) ptr = &(itr->second); // ここでitrは解放される } if (ptr) printf("*ptr = %d\n", *ptr); // 大丈夫?
- 548 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-bar5) mailto:sage [2024/11/10(日) 19:59:53.20 ID:a6nPaG4v0.net]
- >>547
itr が指してる先は m の一部なのでまだ生きてる。 問題ない。
- 549 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 20:31:11.60 ID:g8WH2rn90.net]
- >>548
あざっす!なるほど、よかった〜
- 550 名前:デフォルトの名無しさん mailto:sage [2024/11/11(月) 00:36:44.76 ID:6qsu0cnY0.net]
- >>545
ヤヴァイやん>>539しても全然OKじゃないやん……
- 551 名前:デフォルトの名無しさん mailto:sage [2024/11/11(月) 00:38:49.39 ID:6qsu0cnY0.net]
- ただしウィンドーズのDLLの呼び出し場合は>>539に従っていれば問題無いはず……
ランタイムの初期化エントリはDLL毎に_DllMainCRTStartup が用意されてDLL初期化時に呼ばれる
- 552 名前:デフォルトの名無しさん (ワッチョイ 759b-NX7e) mailto:sage [2024/11/11(月) 16:46:00.51 ID:XlNa4SSE0.net]
- https://www.openwork.jp/company.php?m_id=a0910000000FrzY
- 553 名前:青木康善 mailto:sage [2024/11/12(火) 22:22:32.82 ID:svwbS+Oga.net]
- 独習C++を図書館で借りました。よく、こんな、難しく、エグい言語が出来ますねみなさん。
- 554 名前:デフォルトの名無しさん (ワッチョイ 1d1f-hYHe) mailto:sage [2024/11/12(火) 22:26:44.98 ID:r67kfyB40.net]
- 他に選択肢がなかったんや😭
あと最近はobjective-cとかいう悪魔合体に比べたらなんでもマシな言語に思えてきてる
- 555 名前:デフォルトの名無しさん mailto:sage [2024/11/13(水) 01:53:29.63 ID:CoujH3FQ0.net]
- Objective-C++もよろしく
- 556 名前:はちみつ餃子 mailto:sage [2024/11/13(水) 02:14:12.02 ID:Gj2zjD3b0.net]
- >>553
汚いが、必要なものはある。 綺麗に整理されてても必要なものがないよりは良い。
- 557 名前:デフォルトの名無しさん mailto:sage [2024/11/13(水) 03:47:19.43 ID:rKuXlBFV0.net]
- そーだそーだ
C++は難しいからObject Pascalやろうぜ!
- 558 名前:デフォルトの名無しさん [2024/11/14(木) 07:49:57.71 ID:z8CYzrjO0.net]
- C++女学院の人々ってまだ読める所ある?
大好きだったんだけど。
- 559 名前:デフォルトの名無しさん (ワッチョイ a501-3n/g) mailto:sage [2024/11/14(木) 12:23:07.88 ID:DkukOutW0.net]
- >>554
C++と悪魔合体してObjective-C++とかなってるけど自分は実用的に感じた 全部それで書こうとは思わんけど、C++との共存のレベルが高くて鼻血出そうになったわ OSやその他Apple系APIとのやり取りはObjC++、それ以外のソースはC++のみ、とかも簡単だし
- 560 名前:デフォルトの名無しさん (アウアウエー Sa13-vkNS) [2024/11/14(木) 14:52:24.21 ID:a5xmyjQfa.net]
- >>553
若い人がCからC++の増築増築で可笑しくなって行った歴史をなぞるのは無意味ではない >>554-555 Objective-C や Objective-C++ の方がまし やる気は無いけどObjectPASCALはDelphiだっけ
- 561 名前:デフォルトの名無しさん [2024/11/19(火) 11:41:41.34 ID:1x1cv+pZH.net]
- 演算子のオーバーロードない言語はダメだ
- 562 名前:デフォルトの名無しさん mailto:sage [2024/11/19(火) 11:53:31.53 ID:5+FMYvHmM.net]
- 演算子オーバーロードがもたらす言語仕様の複雑性を理解してたら軽々しくそういうことは言えない
- 563 名前:デフォルトの名無しさん [2024/12/08(日) 01:45:50.04 ID:EhZF4lXKz]
- 5chの管理人がRustマンセー野郎でRustの悪口言ったらBBS規制になっちまった。
それでこっちに書いときます。eigenという行列演算、線形代数ライブラリが ありますが、これ列主順なんですね。なので、[]演算子のオーバーロードでは 行列Aのi行j列の要素にアクセスするときにA[j][i]という奇妙な順番でないと いけない。それでeigenでは行列に対してA[i][j]みたいなサポートはしていない。 だから[]ではなく[][]演算子みたいな拡張がほしいと思いました。
- 564 名前:デフォルトの名無しさん [2024/12/08(日) 02:15:01.21 ID:EhZF4lXKz]
- マトリックスクラスを宣言すると
matrix_<double> a[3][3];
で何の対策もせずに、a[0][1][2][3]=1; みたいなアクセスは問題なくできるんですよ。 サイズ宣言時にa[3][3](3,3);というダサい形に。でもこれはstdsize(3,3);とでもして おけば解決します。でも、列主順のときにはa[j][i]がネックに。()演算子なら列主順 だろが行主順だろが問題なくオーバーロードで解決できるんですが、A(i,j)の添字が0 から始まるのはfortran使っていた自分には違和感があります。
それでA[i,j]? C言語のA[i][j]の伝統を捨てるんですか? 感性の問題ですけど。
- 565 名前:デフォルトの名無しさん [2024/12/08(日) 17:15:54.70 ID:EhZF4lXKz]
- なるほど。C#に引っ張られたわけですね。a[i][j]の ][ を , に置き換えるプログラム
を作成すれば大きな影響もなく変換できそうですね。 でも、a[i][j]は残すんですよね?残さないと、ブーイングもしくはC++23もういいわ になりそう。
|

|