【发布时间】:2011-03-27 14:21:23
【问题描述】:
模板有点问题:
template <typename T>
T Func(){
std::string somestr = "";
// somestr = ...
if (somestr != ""){
return boost::lexical_cast<T>(somestr);
}
else{
T ret; // warning: "ret may be uninitialized in this function"
return ret;
}
}
如果这个函数没有得到结果,我想返回一个有效的对象,但尽可能为空。如果我像上面那样做,我会收到警告“ret may be uninitialized in this function”。 Try-Catch 无助于消除警告..
有没有办法像 C# 中的 default 关键字一样?
return default(T); // C#
谢谢!
【问题讨论】:
标签: c++ templates constructor default keyword