I see issues in this `front`/`empty`/`popFront` trio.

`front` will fail if `empty` was not called prior. This can be fixed by calling `empty` once in the constructor. As for `popFront`: It assumes `empty` will be called *every time* before itself. Which may not happen.

I'd move the code in `empty` into a `prime` function. Then, call `prime` in (and only in) the constructor, and `popFront`. Then, you can make `empty` and `front` const.