初始化和分配

时间:2009-04-06 01:52:14

标签: c++ initialization variable-assignment

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

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

1 个答案:

答案 0 :(得分:1)

嗯..如果你做代码:

T value;

然后value将获取它的构造函数。诚实地,模板看起来像构造函数刚刚被调用两次。

另外,如果T只是普通的旧数据,那么就不会出现致命的问题...

你到底发生了什么事?