On 11/21/2014 12:31 AM, Daniel Murphy wrote:
Here's a simple program to calculate the relative size of two files, that will not work correctly with unsigned lengths.module sizediff import std.file; import std.stdio; void main(string[] args) { assert(args.length == 3, "Usage: sizediff file1 file2"); auto l1 = args[1].read().length; auto l2 = args[2].read().length; writeln("Difference: ", l1 - l2); } The two ways this can fail (that I want to highlight) are: 1. If either file is too large to fit in a size_t the result will (probably) be wrong
Presumably read() will throw if the size is larger than it can handle. If it doesn't, this code is not buggy, but read() is.
