Hi, a file reading class of mine can be constructed with a filename as parameter. It instantiates a new std.stream.File (without the passed file name and closes it when opened within the destructor. The last part is where things are getting unclear for me. On the "file.isOpen()" call in the destructor a segmentation fault occurs. What is the problem with that?
Thanks in advance, Tom An example class to demonstrate the problem: import std.stdio; import std.string; import std.stream; class FileReader(T) { string filename; // the name of the object file std.stream.File file; // the object file public: this(string filename) { // make an immutable copy of the filename this.filename = filename.idup; file = new std.stream.File(); } // destructor ~this() { if(file.isOpen()) // <---- crashes here writefln("open"); } // open file, return true if successful bool open() { try { file = new std.stream.File(filename, FileMode.In); } catch(OpenException e) { writefln("[Error] Could not open file: " ~ filename); return false; } return true; } }