Я пишу довольно сложное приложение, которое интенсивно использует контейнеры STL.Приложение имеет один, относительно простой, чувствительный к производительности раздел, который повторяется в течение нескольких std::map
с и выполняется тысячи раз.Тестирование показало, что компиляция с отключенными проверенными итераторами (_SECURE_SCL
, установленными в 0) приводит к почти двукратному ускорению работы программы в целом, полностью сосредоточенной в этом разделе.
Однако я не могу скомпилировать приложение с _SECURE_SCL
, установленным в 0, потому что необходимо связать библиотеки, которые были скомпилированы с включенным _SECURE_SCL
, и смешивание настроек _SECURE_SCL
приводит к проблемам.Кроме того, я считаю довольно глупым использовать непроверенные итераторы во всем приложении, когда все биты, чувствительные к производительности, происходят в одном скрине кода.Это было бы равносильно выбрасыванию ребенка в ванну с водой.
Какие варианты у меня есть, чтобы выборочно использовать непроверенные итераторы для чувствительного к производительности кода / контейнеров при сохранении совместимости с библиотеками, скомпилированными с проверенными итераторами?