私がこのようなコードを持っているとしましょう:
class B {}
class D : class B {}
void MakeD(int params, D** out, int* status_out);
今日私はそれをこのように呼びます:
B* b;
if (use_d) {
D* d;
MakeD(params, &d, &status)
b = d;
} else...
別の「d」オブジェクトを避けながら、既存の型安全性を失うことなく(つまり、reinterpret_castなしで)これを書くためのよりクリーンな方法はありますか?