A generic queue implementation in C++, based on std::vector