|
|
|
@ -38,17 +38,21 @@ namespace utility
|
|
|
|
|
_q.clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// undefined behavior when queue empty
|
|
|
|
|
// defined behavior when queue empty
|
|
|
|
|
T back()
|
|
|
|
|
{
|
|
|
|
|
Lock lg(_mtx);
|
|
|
|
|
if (_q.empty())
|
|
|
|
|
throw std::underflow_error("queue empty");
|
|
|
|
|
return _q.back();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// undefined behavior when queue empty
|
|
|
|
|
// defined behavior when queue empty
|
|
|
|
|
T front()
|
|
|
|
|
{
|
|
|
|
|
Lock lg(_mtx);
|
|
|
|
|
if (_q.empty())
|
|
|
|
|
throw std::underflow_error("queue empty");
|
|
|
|
|
return _q.front();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|