Выборочное отключение отмеченных итераторов

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

Однако я не могу скомпилировать приложение с _SECURE_SCL , установленным в 0, потому что необходимо установить связь с библиотеками, которые были скомпилированы с включенным _SECURE_SCL , и смешивание настроек _SECURE_SCL приводит к проблемам. Кроме того, я считаю довольно глупым использовать непроверенные итераторы во всем приложении, когда все биты, чувствительные к производительности, находятся на одном экране, заполненном кодом. Это было бы равносильно выбрасыванию младенца вместе с водой из ванны.

Какие у меня есть варианты выборочного использования непроверенных итераторов для чувствительного к производительности кода / контейнеров при сохранении совместимости с библиотеками, скомпилированными с проверенными итераторами?

8
задан Björn Pollex 21 June 2011 в 09:37
поделиться