#include <iostream>
#include <deque>
using std::cout;
using std::endl;
using std::deque;
template <class T, class container = deque<T> >
class CQueue {
container values;
public:
explicit CQueue(std::initializer_list<T> il) : values(il) {}
T front() const { return values.front(); }
void pop() { values.pop_front(); }
bool empty() const { return values.empty(); }
};
int main()
{
CQueue<int> q{ 1, 2, 3, 4, 5, 6 };
while (!q.empty()) {
cout << q.front() << ' ';
q.pop();
}
cout << endl;
return 0;
}
/*
run:
1 2 3 4 5 6
*/