如果我有一个因子函数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);
有没有更好的办法?
谢谢