On 06/10/2016 01:32 AM, Begah wrote:

> I have found the problem and i still don't understand why i was a problem :
> struct Model
> {
>     TextureType[] textures;
>
>     this(TextureType[] textures...) {
>         this.textures = textures[];
>     }
> }

Yeah, that's a bug because the argument array is on the stack and has a short lifetime. (I wish the compiler would warn about that.) As a result, this.textures is now a reference to elements that are destroyed upon constructor exit.

I have some more explanation of it under the "Variadic function arguments have a short lifetime" section here:

  http://ddili.org/ders/d.en/parameter_flexibility.html

Ali

Reply via email to