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);
}
This will be ok:
writeln("Difference: ", (l1 >l2)? (l1 - l2):(l2 - l1));
If 'length''s type is not 'size_t',but is 'int' or 'long', it
will be ok like this:
import std.math;
writeln("Difference: ", abs(l1 >l2));
Mathematical difference between unsigned value,size comparison
should be done before in the right side of the equal sign
character.
If this work is done in druntime,D will be a real system language.