我有一些“传统”代码(我不能改变,但需要添加到),看起来是这样的:

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是只是普通的旧数据,那么就没有的可能会发生致命的的问题,即...

究竟是什么,你担心发生?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top