So in this chess game, I'm using boost::shared_ptr and I have to say wow. I love it! It makes pointer handling so much easier. I don't have to worry about any memory managent, expect possible circular reference. I just love it. Not only does it make things easier, but it's also more efficient; with its reference counting. I have a new appreciation for boost smart pointers and I thought I'd share that. So next time you are creating a program, don't hesitate to use boost's smart pointers and possibly its other boost's features such as boost::array.