個人的には bool で失敗を返すのはやや弱いような気がする・・・
throw logic_error(); とか、いっそ abort() でもいいかと