質問

私はいくつかの「レガシー」のコード持っている(私は変更することはできませんが、それにアドオンする必要があります)、それは次のようになります。

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;

その値は、それはそれで呼ばれるコンストラクタです取得します。テンプレートは正直にちょうどコンストラクタは2回だけ呼ばなっているように見えます。

Tは単なる古いデータである場合も、その後、発生する可能性が何の<私>致死の問題は...ありません。

どのような正確にあなたが発生して心配している?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top