-
23-08-2019 - |
题
我有一些“传统”代码(我不能改变,但需要添加到),看起来是这样的:
template<typename T> T Foo(T& target)
{
//Assign to 'target', but never read from it before that.
//Also, 'target' is going to be a POD-type.
target = T();
return target;
}
int main()
{
float value = Foo(value);
}
此感觉不安全(即,确保target
从未分配给真实使用前),在那里与这种接口的?
解决方案
嗯..如果你的代码:
T value;
那么价值将得到它的构造函数调用它。模板老实说看起来就像构造才刚刚打了两次电话。
此外,如果T是只是普通的旧数据,那么就没有的可能会发生致命的的问题,即...
究竟是什么,你担心发生?
不隶属于 StackOverflow