Optimize my code =)
bearophile
bearophileHUGS at lycos.com
Fri Feb 14 14:32:45 PST 2014
Nick Sabalausky:
>> T opIndex(size_t row, size_t col) const {
>> immutable size_t i = this.dim.offset(row, col);
>> if (i >= this.dim.size) {
>> // TODO - have to learn exception handling in D first.
>> :P
>> }
>> return this.data[i];
>> }
>
> No need for the bounds check. D already does bounds checks
> automatically
But the row-column bounds of the matrix are not the same as the
1D bounds of the 1D array. You can have out-of-column-bounds and
still be inside the 1D bounds. So that test should go in the
precondition and it should test row and col separately:
T opIndex(in size_t row, in size_t col) const pure nothrow
in {
assert(row < nRows);
assert(col < nCols);
} body {
return data[dim.offset(row, col)];
}
Bye,
bearophile
More information about the Digitalmars-d-learn
mailing list