Timon Gehr: > The implementation uses int and uint everywhere. I think it is not 64 > bit aware?
I have not even tried it on a 64 bit system. > > // sizex_, sizey_ are signed to catch negative arguments bugs. > > There would be no negative arguments if they were unsigned. For me a huge unsigned value that I can't catch in the ctor precondition is worse than a negative value that I am able to catch. I don't need to create a 2D matrix with sides bigger than int.max. I agree that all the other methods are probably better with size_t arguments. I'll fix it. > Why is it slower? Ask it to LDC1 developers :-) Adding that method is easy, if you want it. And I agree it's handy, with syntax mat[x,y] = true/false. But note the preferred methods to use this matrix are set/reset, because they are faster than the assign. I'll think about it. > But the signedness of index makes some > straightforward optimizations very hard to carry out for the compiler. > [...] but it has to emit something more to cope with (im)possible negative > values) Right, index needs to be uint or size_t. I'll fix it. Thank you for your suggestions and notes, bye, bearophile
