[過去ログ] C++相談室 part165 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
70: (ワッチョイ b501-sZSb) 2023/12/05(火)12:48 ID:E3GJtsiR0(3/3) AAS
巷のスマートポインタはoperator*で参照型を返すので
生ポインタも同じかと思ってたよ
71: はちみつ餃子◆8X2XSCHEME (ワッチョイ 2a3e-By03) 2023/12/05(火)13:28 ID:z5PiblaY0(4/4) AAS
互換性の都合とかがあるから仕方ないね。
場合分けが大量にあって単純な一般原則の組み合わせにはなってないから仕様を読み解くのがしんどい……
72
(2): (ワッチョイ 9f1f-oseA) 2023/12/11(月)15:17 ID:7vxydTfj0(1/2) AAS
ある構造体Aがあります
Aの比較関数が複数ありますcompA0,compA1,compA2,...
比較関数の関数ポインタがありますcompA
compA = &compA2;

別の構造体Bがあります
BはAを内包しています
struct B{ A a; ... };
省5
73: (ブーイモ MM5b-oUR/) 2023/12/11(月)15:22 ID:F1R6HyeLM(1) AAS
>>72
ラムダ式使った方が良いと思うけど本当にラムダ式なしが良い?
74
(1): (ワッチョイ 9f1f-oseA) 2023/12/11(月)15:29 ID:7vxydTfj0(2/2) AAS
使われると、ラムダ式の質問をすることになると思います・・・
75
(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ 9f3e-pD6R) 2023/12/11(月)15:45 ID:wAhsIAfi0(1/2) AAS
>>72
もし C++20 を使えるなら (std::sort と違って) std::ranges::sort では比較関数とは別に
比較すべき要素を取り出す操作をプロジェクションとして与えることが出来るから
これ一発でいけてだいぶん楽できる。

std::ranges::sort(bs, compA, &B::a);
76: (ワッチョイ d701-Qbcu) 2023/12/11(月)16:01 ID:dil4ai7q0(1/2) AAS
>>75
すげ! 今そんなのあるんやね
77
(1): (ワッチョイ d701-Qbcu) 2023/12/11(月)16:34 ID:dil4ai7q0(2/2) AAS
>>74
思い出すのがしんどくなってきた
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
省12
78: (ワッチョイ 771f-oseA) 2023/12/11(月)17:14 ID:cVrrslE50(1/2) AAS
>>75
>>77
お二方、ありがとうございます
参考にして組んでみます
79
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 9f3e-pD6R) 2023/12/11(月)17:25 ID:wAhsIAfi0(2/2) AAS
その場で合成するのはさすがに見通しが悪すぎるので、
C++11 頃の C++ を仮定して私がやるならまずアダプタを作ると思う。
ちょっと雑ですまんがとりあえずこんな感じ。

class compB_adaptor {
private:
using comparator = std::function<bool(const A&, const A&)>;
comparator compA;
省8
80: (ワッチョイ 771f-oseA) 2023/12/11(月)22:08 ID:cVrrslE50(2/2) AAS
>>79
求めていたものそのものであったため、採用させていただきました
ありがとうございます
81: (ワッチョイ 1663-4if3) 2023/12/20(水)23:47 ID:tqHuIeXr0(1) AAS
int x;
std::cout << x;
でxが正ののときは「+」符号を付けさせるのってどうするんでしたっけ……
cout.form("%+d", x)とか以外で
82: (ワッチョイ 2701-NGr8) 2023/12/20(水)23:58 ID:Qfvbx0VO0(1) AAS
cout << showpos
83: (ワッチョイ 1663-4if3) 2023/12/21(木)08:41 ID:6wjPSKlj0(1) AAS
てきました㌧クス、
iosヘッダで探せば良かったのか、、、
84: (ワッチョイ 63d2-XEY5) 2023/12/21(木)20:01 ID:i16TeC3D0(1) AAS
C++23だとこれ
std::print("{:+}", x);
85
(1): (ワッチョイ 4ba7-JRUi) 2023/12/22(金)13:56 ID:pQLEje080(1) AAS
PythonやC#のようなf"{x}"構文が作られる事はないんだろうか
86: はちみつ餃子◆8X2XSCHEME (ワッチョイ d23e-E09z) 2023/12/22(金)14:54 ID:gr/vrzoo0(1) AAS
>>85
リフレクションが充実すればその上に実装できるので
直接的な言語機能として用意すると
辻褄合わせが後で面倒になるだろうし、
現時点で考えるのは時期尚早だと思う。
87
(1): (ワッチョイ cf63-nyJS) 2023/12/24(日)17:42 ID:foDTiHm90(1/5) AAS
質問なのですが自作クラスFooのストリーム出力演算子に引数付きのマニピュレータを追加したいのですが
  ↓こんなやつ
  Foo obj;
  cout << custom_setw(10) << obj; // 整数のベクトル的なオブジェクトobjの要素を幅10文字で出力
custom_setw()で与えた10という数値をつつがなくFooのストリーム出力演算子
std::ostream& operator<<(std::ostream& os, const Foo& obj)
に渡すには一体どうすれば……orz
88
(1): (ワッチョイ cf63-nyJS) 2023/12/24(日)17:42 ID:foDTiHm90(2/5) AAS
グローバル変数渡しは最初に思いつくのですが、ostringstream os1, os2とFoo obj1, obj2に対して異なるスレッドで
os1 << custom_setw(30) << obj1;  // スレッド1
os2 << custom_setw(20) << obj2;  // スレッド2
とかやったら詰むし
std::setw()とか一体どうやってるんじゃ……
89: はちみつ餃子◆8X2XSCHEME (ワッチョイ ff3e-XnzH) 2023/12/24(日)18:05 ID:SfA3xmSz0(1/2) AAS
>>87-88
特定の型を出力するときにだけ作用する書式を設定するマニピュレータってこと?

std::setw がやってるのはストリームのメンバ関数 width を呼ぶのと同じ。
ストリームのオブジェクトが幅に関する情報を保存するデータメンバを持っていて、それを変更してる。

もちろんあなたが定義した独自の型 (この例では Foo) に結び付いた書式を保持するところなんて存在しないから単純にはできない。
私が思いつくのは
 ・ ストリームのほうも新しいものを定義する、つまり basic_ostream を継承して Foo 用の書式を格納するデータメンバを増やす
省3
90: (ワッチョイ 337c-dsFJ) 2023/12/24(日)19:04 ID:vbUOIudY0(1) AAS
既存のcoutとかstringstreamとかで使いたいなら、グローバルのstd::unordered_map<std::ios_base*, MyManipData>にでも置いとくしかないだろうね
ストリームオブジェクトの状態で持たせるクソ設計が悪いんだ
91: (ワッチョイ cf63-nyJS) 2023/12/24(日)19:34 ID:foDTiHm90(3/5) AAS
レス㌧クス、
>ストリームのオブジェクトが幅に関する情報を保存するデータメンバを持っていて、それを変更してる。
なるほど……
これはユザーの立場からはメンバの追加ができない領域なので、Fooの側にメンバを持たせることにしますか……
class FooWrp {
  const Foo& m_objRef;
  int m_nWidth;
省4
92: (ワッチョイ cf63-nyJS) 2023/12/24(日)19:35 ID:foDTiHm90(4/5) AAS
// 使い方
Foo obj;
cout << FooWrp(obj, 10);

ダッサwwwwwwwwwwwwwwwwwww
しかし、「たかが表示の整形」のために排他制御しつつmapを弄ったりTLSの利用を考えるのもアレなのでこれはこれで仕方が無いのか、orz
93: (ワッチョイ a31e-H80b) 2023/12/24(日)19:45 ID:Y8qSN/i/0(1/2) AAS
ストリーム用の演算子なんか作らずに
オブジェクトの文字列表現を返す関数を用意したほうが汎用性高くない?
94: (ワッチョイ cf63-nyJS) 2023/12/24(日)19:50 ID:foDTiHm90(5/5) AAS
Foo obj;
std::string s = obj.str(10); // 10億ギガ文字
cout << s;
出力を完遂できるんかこれ……
95: はちみつ餃子◆8X2XSCHEME (ワッチョイ ff3e-XnzH) 2023/12/24(日)20:00 ID:SfA3xmSz0(2/2) AAS
C++20 からは std::formatter を特殊化して書式指定を解釈するコードを入れておけば
std::format で独自の型を表示しようとしたときにその特殊化が使われる仕組みになってる。
96: (ワッチョイ a31e-H80b) 2023/12/24(日)21:41 ID:Y8qSN/i/0(2/2) AAS
オブジェクトの文字列表現が10億ギガ文字もあるの!?
FooWrpオブジェクトをうっかりログに出力しちゃったら大変だね!!
97
(1): (ワッチョイ cf63-nyJS) 2023/12/29(金)19:34 ID:MPSeCS+O0(1/2) AAS
実験せずに質問するますが、
int a, b;
cin >> &x >> &y;
に対し、
Q1. 「100 a」を入力したら例外もタイムアウト待ちも発生せず、cin.fail()がtrueになるだけ?
Q2. 「100」とだけ入力してそのまんま(リダイレクト元のファイルハンドルか何かが
  タイムアウトもエラーもクローズもしなければ)ならそれっきり返ってこない?
98: (ワッチョイ cf63-nyJS) 2023/12/29(金)19:40 ID:MPSeCS+O0(2/2) AAS
EOFが抜けてたorz
Q2のケースにおいて「100 [EOF]」なら(多分)cin.fail()でとりあえずすぐ返ってくるのかそうか、
99
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ff3e-XnzH) 2023/12/29(金)21:37 ID:0cvltfsQ0(1) AAS
>>97
実にしょうもない確認なんだけど、
言いたいことは

int x, y;
cin >> x >> y;

でよいんだよね?
100
(1): (ワッチョイ de63-J7+h) 2023/12/30(土)05:42 ID:3ksfrMrT0(1/3) AAS
>>99
>int x, y;
>cin >> x >> y;
おk
スマンカッタorz

エラーとEOFのどちらかを検知したかったら!cin.good()が正しいっぽい?
外部リンク:blog.emattsan.org
省3
101
(1): (ワッチョイ de63-J7+h) 2023/12/30(土)05:50 ID:3ksfrMrT0(2/3) AAS
クラスFooの入力ストリーム演算子の中で整数を2個読むとして、
std::istream& operator>>(std::istream& os, Foo& obj) {
 int x, y;
 os >> x >> y;
 if (!os.goot()) {
  return os; // エラー発生時は単純にreturn os; でおk?
 }
省4
102: はちみつ餃子◆8X2XSCHEME (ワッチョイ 43c3-KM86) 2023/12/30(土)08:47 ID:XV37Te4m0(1) AAS
>>100
ストリームのフラグを立てるメンバ関数は setstate だけど
>>101 の状況ならフラグはもう立ってるから戻るだけで問題ないよ。
103: (ワッチョイ de63-J7+h) 2023/12/30(土)13:48 ID:3ksfrMrT0(3/3) AAS
わかりた
ていうかエラー判定(eofbit以外のビットのセットを判定)なら!os.good()や!os.goot()ではなくて
os.failed()か!osですたね……orz
これらに関して追加の質問が出たら初心者スレに書くわサーセン;;;
104
(1): (ワッチョイ e95f-pFp4) 2023/12/31(日)20:09 ID:tpduSr4A0(1) AAS
class A{

char buf_[size];
}

このbuf_に任意のオブジェクトをplacement newして使用するのだけど
このオブジェクトをコピーしたりムーブする場合、単純にコピー元のbuf_からコピー先のbuf_にmemcopyしてしまって大丈夫ですか?
105: (ワッチョイ 06a2-M+UX) 2023/12/31(日)20:44 ID:bvEcnWMM0(1/2) AAS
全く大丈夫じゃない
初心者スレからどうぞ
106: (ワッチョイ 8101-KEYj) 2023/12/31(日)20:54 ID:NNsdlVTY0(1) AAS
構造体から派生させれば出来るよ
107: (ワッチョイ 06a2-M+UX) 2023/12/31(日)21:04 ID:bvEcnWMM0(2/2) AAS
せめてPODと言おう
初心者スレからどうぞ
108: はちみつ餃子◆8X2XSCHEME (ワッチョイ 0904-OTTg) 2024/01/01(月)00:18 ID:6hyMwo3D0(1/2) AAS
POD は削除された。
trivially copyable の要件を満たすならその型は memcpy でコピーしてもよい。
std::is_trivially_copyable で判定できるのでどこかに制約を入れておけば安心かもね。
109
(1): (ワッチョイ 656a-R/a6) 2024/01/01(月)00:36 ID:an53Mx2V0(1) AAS
削除されたんですか?(バージョンいくつで?)

c++20 で非推奨になった、てのはすぐ調べられたんだけどその先が分からんです
110: はちみつ餃子◆8X2XSCHEME (ワッチョイ 0904-OTTg) 2024/01/01(月)00:46 ID:6hyMwo3D0(2/2) AAS
>>109
規格の文面としては C++20 で POD はもう削除されていて POD の概念を使わない形で再編されてる。
std::is_pod はまだある (非推奨) からこれが POD の定義だという意味ではまだあるとも言えるけど。
111: (ワッチョイ 06a2-M+UX) 2024/01/01(月)00:46 ID:l/ylj5kb0(1) AAS
アライメント忘れてるぞ
112
(1): (ワッチョイ e1f0-JZT3) 2024/01/01(月)03:01 ID:5pNbZa2B0(1) AAS
>>104
まず自分でコード書いてみ
よろしくないところは指摘してやるから
113: (ワッチョイ 8101-KEYj) 2024/01/01(月)03:14 ID:8zoq4UeO0(1) AAS
オワコン名称出してマウント。プークスクス
114: はちみつ餃子◆8X2XSCHEME (ワッチョイ 823e-OTTg) 2024/01/01(月)03:40 ID:hmX3WjmM0(1/4) AAS
POD が削除されたかどうかは重要ではなくて、 POD より弱い制約 (trivially copyable) で memcpy が許されるというのが主旨。
その点は C++11 からそうなってる。
115: はちみつ餃子◆8X2XSCHEME (ワッチョイ 823e-OTTg) 2024/01/01(月)04:06 ID:hmX3WjmM0(2/4) AAS
「構造体」ってのも C++ 用語的にはイケてないと思うよ。
116
(1): (ワッチョイ d24b-WshQ) 2024/01/01(月)04:55 ID:e5pnn2Xx0(1) AAS
アライメントは基本型のどれかと同じアライメント制約に合わせれば良いいということなら
使おうとしているうちで最も厳しいアライメント制約に一致する基本型を含むunionで解決するというのがC言語における伝統的な手法という印象、
C++でunionにしたら(それが可能なメンバのみなら) memcpyは安全とかにはならない?
117: はちみつ餃子◆8X2XSCHEME (ワッチョイ 823e-OTTg) 2024/01/01(月)05:30 ID:hmX3WjmM0(3/4) AAS
>>116
コンストラクタや代入演算子がトリビアルであることなどの制約を守れば共用体も trivially copyable になりうる。
(C++ の共用体はコンストラクタやメンバ関数を定義できるがそこらが制限されることになる。)
118: (ワッチョイ 65e8-QK8A) 2024/01/01(月)14:24 ID:kge3DGj60(1) AAS
char* と long* のコピーは?
119: はちみつ餃子◆8X2XSCHEME (ワッチョイ 823e-slPv) 2024/01/01(月)15:31 ID:hmX3WjmM0(4/4) AAS
ポインタも含めてスカラ型は Trivially copyable
外部リンク:timsong-cpp.github.io
120: (ワッチョイ e95f-pFp4) 2024/01/03(水)23:34 ID:w4EAqTeZ0(1) AAS
>>112
とりあえず書いてみたけどどうですかね?

template<std::size_t buf_size>
struct A {
private:
struct base_ {
virtual ~base_() {};
省21
121
(1): (ワッチョイ 9901-r6/T) 2024/01/04(木)00:44 ID:/FDyuY0i0(1/3) AAS
decltype(src.*p_)ってbase_なのでダメだろう
122
(1): (ワッチョイ e1f0-JZT3) 2024/01/04(木)00:58 ID:ECF9R1Fj0(1/2) AAS
ていうか、decltypeで型指定してるだけだからコピーもなにもされてないぞソレ
123: (ワッチョイ 0644-M+UX) 2024/01/04(木)02:28 ID:oZapr/U70(1/2) AAS
std::anyのコードでも読んだほうが早い
124
(1): (ワッチョイ 9901-r6/T) 2024/01/04(木)09:11 ID:/FDyuY0i0(2/3) AAS
A::base_に以下を足してA::derived_で実装し
Aのコピーコンストラクタから呼べば?
virtual base_ *clone (void *p) = 0;
125: (ワッチョイ 6564-QK8A) 2024/01/04(木)13:26 ID:1KQpMTCj0(1) AAS
void*って、ポインターの先のサイズ未知だよなぁ
126: (ワッチョイ e95f-pFp4) 2024/01/04(木)17:16 ID:ACseOt7T0(1/2) AAS
derived_かそのメンバf_の型を知るにはRTTIしかないのですかね?

>>121
decltypeだと派生先の型はわからないのか

>>122
実体のコピーの処理が抜けてました…
127
(2): (ワッチョイ e95f-pFp4) 2024/01/04(木)21:53 ID:ACseOt7T0(2/2) AAS
>>124
こんな感じです?

struct base_ {
virtual base_* clone (void *p) = 0;
virtual ~base_() {};
};

template <typename F>
省10
128: (ワッチョイ e1f0-JZT3) 2024/01/04(木)22:19 ID:ECF9R1Fj0(2/2) AAS
derived_(F f) ←この時点でムダなコピーが1度発生していることには気付いてる?
129: (ワッチョイ 9901-r6/T) 2024/01/04(木)22:21 ID:/FDyuY0i0(3/3) AAS
>>127
書き込む前にコンパイルしなよ
130: (ワッチョイ 651a-R/a6) 2024/01/04(木)22:41 ID:Dv09vJ7A0(1) AAS
バッファの中にオブジェクトを作れたら、それで何をしたいのかが気になる
131: (ワッチョイ 0644-M+UX) 2024/01/04(木)23:21 ID:oZapr/U70(2/2) AAS
>>127
cloneの中ってplacement newでcopy constructorを呼ぼうとしてるんだよな?
いちおうあってるけどundefined behaviorまみれ
132: はちみつ餃子◆8X2XSCHEME (ワッチョイ 823e-OTTg) 2024/01/04(木)23:35 ID:td6kYpbC0(1) AAS
たぶんやりたいことは std::allocator_traits::construct なのかな
133
(1): (ワッチョイ 7f7c-JApz) 2024/01/11(木)04:45 ID:wlSOhq+Y0(1/2) AAS
例外って全部mainで捕捉すべきかな?

調べてみたら例外が捕捉されずにプログラムが終了する場合スタックアンワインドが起こるかは実装定義みたいなんだけど、それじゃグローバルなオブジェクトのデストラクタが呼ばれないんじゃないかって思って試してみたのよ。
外部リンク:ideone.com
やっぱりデストラクタは呼ばれなかったからリソースリークが起こりうるんじゃないかと思うんだけど、例外に対してはどういう態度でいるべきかな?

A. リソースリークはまずい。だから例外は全部捕捉するべき。
B. 例外はロジック上捕捉する必要があるものだけ捕捉して、それ以外はほっといていい。
C. 例外が捕捉されなければstd::abortが呼ばれるので、コアダンプなりで色々調べることもできる。だからmainで例外を全部握りつぶすようなことはすべきではない。
省2
134: (ワッチョイ dff7-1VUN) 2024/01/11(木)08:40 ID:8oRrkiTZ0(1) AAS
そもそもプログラムが終了してリソースリークするのかな?
メモリー、ファイルハンドル、ソケット、ミューテックスなどのリソースはOSが責任持って解放するよね
どのようなリソースがリークしますか?
135: (ワッチョイ 7f01-2R+Q) 2024/01/11(木)08:45 ID:ETJgFBFV0(1/2) AAS
すべてじゃね?
136
(2): (ワッチョイ 7f01-2R+Q) 2024/01/11(木)08:46 ID:ETJgFBFV0(2/2) AAS
>>133
すべてじゃね?
それらの選択肢は別に排他的な選択肢じゃないかと
137
(1): (ワッチョイ 7f3a-NF1f) 2024/01/11(木)09:02 ID:dA95iQ6m0(1) AAS
OS管理なリソースはアプリの終了なんか知らないってのもあるからなぁ
得にドライバ関連とかな
138
(1): (ワッチョイ dfab-acFs) 2024/01/11(木)15:30 ID:hAXa3uBd0(1) AAS
>>136
あれ、少なくともAとCは排他的だと思うんだけど
全部の選択肢を選ぶとすると具体的にはどうなるのかな
139: (ワッチョイ ff11-Nf4k) 2024/01/11(木)20:09 ID:AWAYnmwT0(1/4) AAS
今どきのOS使ってたらOSリソースはリークしない
まぁプロセスがゾンビになるのはよくあるが
140: (ワッチョイ ff11-Nf4k) 2024/01/11(木)20:09 ID:AWAYnmwT0(2/4) AAS
>>137
しったかすんな
141: (ワントンキン MMdf-7Pe6) 2024/01/11(木)20:12 ID:h5T3Zf1WM(1) AAS
そもそもアプリ的にデータの不整合とか出るから論外だろう
ファイルやなんかの外部データ使わないなら関係ないだろうけど
142: (ワッチョイ ff11-Nf4k) 2024/01/11(木)20:12 ID:AWAYnmwT0(3/4) AAS
よくあるのは異常終了時にファイルをフラッシュしておきたいとかだろ
汎用的にこれを実現するのは結構むずい
143: (ワッチョイ ff11-Nf4k) 2024/01/11(木)20:14 ID:AWAYnmwT0(4/4) AAS
あとコアダンプの観点では例外飛ばさずに即死したほうがいい
144: (ワッチョイ df5a-XokC) 2024/01/11(木)21:36 ID:40hQdtQK0(1) AAS
エラーだからって一時ファイル山盛り残して放置しないでください
145: (ワッチョイ 7f7c-acFs) 2024/01/11(木)22:44 ID:wlSOhq+Y0(2/2) AAS
質問した者だけど

確かに近代的なOSであればリソースの始末はよしなにやってくれるだろうし、「絶対にデストラクタが呼ばれなきゃ困る」って状況でもなければいちいちすべての例外を捕捉する必要はないのかな(毎回ボイラープレートコードみたいに書くのもやだし)
146: (スッップ Sd9f-d+nK) 2024/01/12(金)01:18 ID:P05ikaaEd(1) AAS
例外処理って、メモリ破壊やファイルシステム破壊みたいな絶望的な状況を想定しなきゃいけないんだよ。
ファイルに何か書き込んだら他のファイルを壊しちゃうかもしれない、みたいな。

だからファイル関連の操作をしていいのは、ファイルシステム周りの無事を確信できるときだけ。
データを上書き保存とかしていいのは、データとファイルシステム両方の無事を確信できるときだけ。
何も確信できないときは、何もせずに墜ちなきゃいけない。

ってことで例外機構はデフォルトで何もせずに異常終了するようになってるんだよ。
147: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7f3e-Cx9t) 2024/01/12(金)02:09 ID:Z8/dVhwe0(1/2) AAS
理想的には全ての例外はキャッチされるべき。 ただ、現実は理想的ではない。
キャッチするのは対処するためなので想定漏れで思ってもなかったような例外が上がってきた (対処が出来てない) ならそれはバグなんだから検証して修正する必要があるわけだし、検証しやすい形で止まったほうがいい。

C++ ではスタックの巻き戻しの途中で例外を送出したときの挙動は未定義なので通例ではデストラクタから例外を投げないように設計される。
つまりデストラクタでの後始末に失敗したらもうそれを (例外機構の仕組みでは) フォローできない。
想定されてない例外が上がってるときに後始末がちゃんとできずにわけのわからない動作を引き起こしたら検証にも支障がある。
148
(1): (ワッチョイ 7f7c-acFs) 2024/01/12(金)09:48 ID:1nCpSyqU0(1/2) AAS
じゃあ「投げられうるすべての例外に適切な対処ができるのが理想的だが、対処しきれない例外は投げられっぱなしにする(そしてプログラムを即座に異常終了させる)方が、思考停止でとりあえず捕捉しておくよりはまだマシ」ってことになるのかな
みんなありがとう
149
(1): (ワントンキン MMdf-7Pe6) 2024/01/12(金)09:51 ID:Vmsz+UsIM(1) AAS
いやいや、ちゃんとデバッグしろよ
こんなやつとは絶対一緒に仕事したくない
150: (ワッチョイ 5f4e-1VUN) 2024/01/12(金)09:58 ID:yLdIK4jH0(1) AAS
ライブラリ書くときはライブラリで対処できない例外は握り潰さずに上位で伝搬させろ!と言われてるよね
アプリも同じだと思う
明確に対処すべきことがあるなら例外をキャッチすればいいし
ないならそのままプロセス落としてOSに任せればいいんでない?
1-
あと 852 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.025s