Using std.stdio.File in a class
Steven Schveighoffer
schveiguy at yahoo.com
Tue Apr 8 08:18:20 PDT 2014
On Tue, 08 Apr 2014 10:52:01 -0400, Spacen Jasset
<spacenjasset at mailrazer.com> 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
More information about the Digitalmars-d-learn
mailing list