Inicializace a přiřazení

hlasů
1

Mám nějaké ‚starší‘ kód (které nemohu změnit, ale je třeba přidat k), který vypadá nějak takto:

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);
}

To se cítí bezpečný (tj ujistěte se, že targetse nikdy přiřazena před tím, než je použit), existují nějaké jiné potenciálně smrtelné problémy s tímto druhem rozhraní?

Položena 06/04/2009 v 02:52
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

No .. Pokud si kód:

T value;

pak se hodnota dostane je to konstruktor volal na něj. Šablona upřímně vypadá jako konstruktor je prostě stále nazývá dvakrát.

Také v případě, T je prostě stará data, pak není smrtelný problém, který by mohl nastat ...

Co přesně jste starosti dochází?

Odpovězeno 06/04/2009 v 02:57
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more