namespace lasd { template QueueLst::QueueLst(const LinearContainer& linear) : List(linear) {} template QueueLst::QueueLst(const QueueLst& copyFrom) : List(copyFrom) {} template QueueLst::QueueLst(QueueLst&& moveFrom) noexcept : List(std::move(moveFrom)) {} template QueueLst::~QueueLst(){ Clear(); } template QueueLst& QueueLst::operator=(const QueueLst& toCopy){ List::operator=(toCopy); return *this; } template QueueLst& QueueLst::operator=(QueueLst&& toMove) noexcept{ List::operator=(std::move(toMove)); return *this; } template bool QueueLst::operator==(const QueueLst& queuelist) const noexcept{ return List::operator==(queuelist); } template bool QueueLst::operator!=(const QueueLst& queuelist) const noexcept{ return List::operator!=(queuelist); } template void QueueLst::Enqueue(const Data& data){ List::InsertAtBack(data); } template void QueueLst::Enqueue(Data&& data){ List::InsertAtBack(std::move(data)); } template Data& QueueLst::Head() const{ return List::Front(); } template void QueueLst::Dequeue(){ List::RemoveFromFront(); } template Data QueueLst::HeadNDequeue(){ return List::FrontNRemove(); } template void QueueLst::Clear(){ List::Clear(); } }