у меня есть C ++ проект. Я работаю над проектом, чтобы научиться создавать полуреалистичную программу на C ++. Он загружает контент рекурсивно с веб-сайта.
Каждая загрузка имеет URL-адрес для загружаемого контента, а также URL-адрес для реферера (или URL-адрес страницы, с которой был извлечен контент).
Всегда есть реферер, если это не самый первый URL. Я обманывал и просто рассматривал первый URL как своего собственного реферера. Я недавно изменил класс URL, чтобы иметь пустое (или пустое) представление. Это похоже на взлом.
Есть ли способ представить необязательные объекты в C ++ без:
Вы можете использовать boost :: необязательный. boost — уважаемая сторонняя библиотека; часто рассматривается как прототип для новых функций stl: см. ответ Ральфа std :: option доступен с новым C ++.
Увидеть http://www.boost.org/
Использовать std::optional
шаблон, если у вас есть компилятор C ++ 14. Если нет, вы можете использовать boost::optional
или же std::unique_ptr
, Вы не можете избежать как использования указателей, так и траты места на недопустимый объект. std::optional
будет содержать необязательный объект, std::unique_ptr
будет явно указывать на это.