core::MpscQueue implements intrusive lock-free queue. It is rather big template class.
To reduce code size and compilation times, it would be great to extract most of its internals to a non-template implementation class. All existing code will continue using MpscQueue, however its methods will mostly just invoke similar methods of MpscQueueImpl and make some type casts. This way, the template part will be small, and non-template part will be compiled once and reused.
core::MpscQueue implements intrusive lock-free queue. It is rather big template class.
To reduce code size and compilation times, it would be great to extract most of its internals to a non-template implementation class. All existing code will continue using MpscQueue, however its methods will mostly just invoke similar methods of MpscQueueImpl and make some type casts. This way, the template part will be small, and non-template part will be compiled once and reused.
We use the same approach with core::Pool and core::PoolImpl.