handleElementFromQueue(const F& handleFunction);
...
};
И из командной строки вызывается метод get, который печатает элемент в стандартный поток, а затем изымает его из очереди
bool print(const std::string& element);
...
else if (command == "get")
{
if (queue.isEmpty())
{
std::cout << "<EMPTY>\n";
}
else
{
queue.handleElementFromQueue(print);
}
}
В чем смысл передачи функции по ссылке, а не как указатель? Это как-то связано с тем, что она шаблонная?
Указатель можно удалить - ссылку нет. И указатель может быть пустым - ссылка нет. Всегда, когда хотя бы одно из двух этих свойств не требуется, безопасней использовать ссылку.
Считайте, что ссылка это ненулевой указатель
Обсуждают сегодня