Interestingly, I have been playing around with Sudoku and C++ as well - though I haven't done board generation yet. What I have done is a function that checks which numbers may appear in any one square. And the next step would be a solving algorithm. Loads of optimization fun there
