1

我有一些看起来像这样的“遗留”代码(我无法更改,但需要添加):

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在使用之前从未分配过),这种接口是否存在任何其他潜在的致命问题?

4

1 回答 1

1

好吧..如果您执行代码:

T value;

然后 value 将得到它的构造函数调用它。老实说,模板看起来就像构造函数只是被调用了两次。

此外,如果 T 只是普通的旧数据,则不会发生致命问题......

您究竟担心会发生什么?

于 2009-04-06T01:57:29.440 回答