因子関数がある場合f
:
typedef std::vector<int> IntVec;
const IntVec f(...) {
IntVec retval;
...
return retval;
}
そして私は次のように宣言後に定義を遅らせる必要があります:
IntVec instance;
if (...) {
instance = f(a, ...);
}
else {
instance = f(b, ...);
}
それを行うための提案された方法はありますか?
今、私はそれを次のようにするためにコンテナのポインタを使用します:
std::auto_ptr<IntVec> pinstance(NULL);
if (...) {
pinstance.reset(new IntVec(f(a, ...)));
}
else {
pinstance.reset(new IntVec(f(b, ...)));
}
IntVec& instance(*pinstance);
もっと良い方法はありますか?
ありがとう