Use a vector for the free list. std::list is mind bogglingly slow.