«Много кода на C ++, без исключений из среды выполнения» Мне кажется, это противоречит. В C ++ явно есть исключения: если ваша платформа не поддерживает это, вы не используете C ++, вы используете специфическую для реализации производную C ++.
у std :: stack :: pop () не генерирует исключение, если стек пуст и нечего выдавать?
(Я разрабатываю специализированный стек для своего собственного кода и хотел бы узнать о компромиссах с этим подходом (который требует проверки вручную, если стек пуст), а не с выдачей исключения.
Я предполагаю, что хотя C ++ поддерживает обработку исключений, он имеет небольшие накладные расходы времени выполнения, и поэтому для максимальной производительности было принято решение не создавать исключение в std :: stack :: pop).