Sudoku Py / C++11 / D?

Chris Cain clcain at uncg.edu
Fri Aug 24 12:48:40 PDT 2012


On Friday, 24 August 2012 at 19:32:53 UTC, maarten van damme 
wrote:
> I've distiled what I understood from your source and the 
> resulting
> executable managed to solve the impossible one in 27 seconds 
> while
> your source takes 41 seconds.
>
> I've probably violated every D guideline concerning the use of 
> static,
> pure, nothrow,... but it works perfectly :)

Nice job! I looked at it quickly, but it seems like a good 
solution.

> It does fail to compile on dpaste, I have no idea why. It does 
> compile
> on my machine though...
>
> http://dpaste.dzfl.pl/8a2aef5b

It's because dpaste is compiling for 64-bit and you're compiling 
it for 32-bit. length is a size_t which is uint in 32-bit 
environments and ulong in 64-bit. A long/ulong isn't implicitly 
convertable to int/uint in D. On line 119, either you need to use 
an explicit cast or you can change the type of curLength to long, 
ulong, or size_t.

In this case, since you expect curLength to be fairly small (much 
smaller than an int), I'd just stick a cast in there. Though, in 
general, changing the type to a size_t is better.


More information about the Digitalmars-d-learn mailing list