и затем проверяет, те против допустимых символов допускали имя (нет никакой дальнейшей проверки, которая может быть сделана на этой части)
, Это не верно. Например, "ben..doom@gmail.com" содержит только допустимые символы в разделе имени, но не действителен.
На языках, которые не имеют библиотек для почтовой проверки, я обычно использую regex becasue
я уверен, что многие встроенные библиотеки действительно используют Ваш подход, и если Вы хотите покрыть все возможности, это действительно становится смешным. Однако так делает Ваш синтаксический анализатор. Формальная спецификация для адресов электронной почты нелепо сложна. Так, мы используем regex, который рядом достаточно.
Я что-то упускаю или нет имеет смысл скомпилировать весь код выпуска как RelWithDebInfo?
Это зависит от того, насколько вы доверяете своему клиенту отладочную информацию.
Дополнительная информация:
gcc кодирует отладочную информацию в объектный код.
Вот эквивалент в pdb для gcc:
Как сгенерировать символ отладки gcc вне целевой сборки?
Обратите внимание, что cmake не поддерживает этот подход из коробки.
Насколько я понимаю, доставка кода клиентам без хранения соответствующих отладочных символов внутри компании - это рецепт потери волос, когда дело доходит до отладки производственных проблем.
Отладка. Отладочные сборки с отладочными символами редко отличаются от отладочных отладочных сборок, поэтому я рекомендую всегда делать это.
Тем не менее, я не знаю, есть ли какие-либо недостатки. Было бы интересно услышать, если так.
После того, как вы попытались отладить оптимизированную сборку выпуска, вы поймете, почему это то, что вы хотите делать, только когда нет другого выхода.
В основном, я вижу два случая, когда вам это понадобится:
Не знаю, как вы, но мне приходилось отлаживать код выпуска дважды или трижды за последнее десятилетие, и мне удалось поработать в компаниях, где сбои у клиентов не были проблемой.
Да, вероятно, неплохо было бы иметь отладочную информацию для ваших релизных сборок, но VS не настраивает все таким образом, и для двух случаев в каждом десятилетии, когда вам это нужно, не стоит устанавливать это вручную каждый раз. Поскольку CMake предоставляет это бесплатно, сделайте это.
Производственный код не нуждается в увеличении размера, которое несет отладочная информация.