On Tue, 08 Apr 2014 10:52:01 -0400, Spacen Jasset <[email protected]> wrote:

I am trying to use file in a class. It doesn't seem to work. File is a struct. Are you not supposed to new structs anymore? The examples seem to use auto, but that isn't going to work in this situation.

Is File a struct to take advantage of Raii?

import std.stdio;

class X
{
     this()
     {
         f = new File("test2", "wt");
     }

     File f;
}


void main()
{
     X x = new X;
}

C:\temp>dmd file.d && file.exe
file.d(7): Error: constructor std.stdio.File.this (shared(_iobuf)* handle, strin g name, uint refs = 1u, bool isPopened = false) is not callable using argument t
ypes (File*)

DMD32 D Compiler v2.065

Just a word of caution, I don't think the RAII semantics of File work properly in multithreaded code when the File is destroyed by the GC.

-Steve

Reply via email to