I use two different queues (one for command and one for address)
I have a requirement to identify the order in which elements are being pushed to these queue. Typically one such example is listed below:
where something is a struct that holds the data's key (aa, bb, etc or some way to access this, even a pointer to it works) and the type (cmd or addr, possibly the template type or text version thereof for the q class?)
then any q variable can list the historical operations performed on all the qs. Even an empty dummy q variable can take a look at the history.
this is the direct approach. It may not be the best OOP design.