No post today, but a bit of advice

This bears repeating: DON'T RETURN VOID. Even when there's no way for a function to fail, return an integer. Why? Because it allows the user to go on autopilot. If all of your functions return int (except for a few explicitly-named constructors - these can return the desired struct), the end user can just work your code into

Patterns: One Sentence

There is a law of problem solving which has been passed around since time immemorial. To Einstein, the law looked like this: If you can't explain it simply, you don't understand it well enough. However, this law has seen many refinements, and it came down to me in this form: If you can't explain it in one