On Tue, Mar 30, 2021 at 12:32:36AM +0000, mw via Digitalmars-d-learn wrote: > On Monday, 19 November 2018 at 22:32:55 UTC, H. S. Teoh wrote: > > Actually, the case is unnecessary, because arrays implicitly convert > > to void[], and pointers are sliceable. So all you need is: > > > > SomeStruct myStruct; > > fd.rawRead((&myStruct)[0 .. 1]); > > > > This works for all POD types. > > > > Writing the struct out to file is the same thing: > > > > SomeStruct myStruct; > > fd.rawWrite((&myStruct)[0 .. 1]); > > > This works, but I'm just wondering why we do not just add more > functions to the library: > > rawRead(ref T t), and > rawWrite(ref T t) > > to read & write single value.
If you wish, submit a PR for this. It's not hard to write your own overloads for it, though: void rawWrite(File f, ref T t) @trusted { f.rawWrite((cast(ubyte*) &t)[0 .. T.sizeof]); } // ditto for rawRead T -- A linguistics professor was lecturing to his class one day. "In English," he said, "A double negative forms a positive. In some languages, though, such as Russian, a double negative is still a negative. However, there is no language wherein a double positive can form a negative." A voice from the back of the room piped up, "Yeah, yeah."