И я не могу думать о многих случаях, когда они используются. Это обычно наоборот - существует некоторая определенная проблема, и оказывается, что использование битовых операций приведет к лучшим результатам (обычно с точки зрения производительности - время и/или пространство).
У любого из них разные цели:
код ошибки вер. Исключение (я): исключения и коды ошибок представляют разные идиомы того, как обрабатывать коды результатов. Исключения более надежны - коды результатов можно игнорировать или терять. Библиотека обычно должна четко различать, где и какие исключения выбрасываются и когда используются коды ошибок. В лучшем случае используйте только один из обоих.
return true
или false
: специализация кодов ошибок.
Я предлагаю вам потратить некоторое время на изучение вашего проекта и удаление ненужных #includes. Я подозреваю, что это решит ваши проблемы с нехваткой памяти И улучшит время компиляции.
Я должен согласиться с Гозом, взгляните на этот (SO) пост чтобы увидеть способы помочь удалить избыточные файлы заголовков.
Наше решение C ++ имеет такой приблизительный размер и раньше нам требовалось 50 минут на компиляцию, тщательный анализ файла заголовков позволил нам сократить это время до 8 минут.
IncrediBuild (распределенная система сборки для VC ++) помимо экономии времени имеет дополнительную полезную функцию. Он автоматически перезапустит компиляцию, если удаленная машина не вернет результаты. Таким образом, вы сможете получить полные сборки без сбоев в течение 5 или, возможно, 10 минут.