Стандартную библиотеку С++ мы используем очень активно, включая алгоритмы.
В сочетании с заголовками Windows это дает иногда интересные эффекты с min/max, которые не глядя определены там как макросы...
Традиционно эта проблема решается через "#define NOMINMAX" перед включением windows.h, но тогда возникают проблемы, например, с компиляцией заголовков ATL.
Наиболее простой вариант решения в случае совместной нужды в windows.h и стандартной библиотеке заключается в использовании (std::min)() и (std::max)() - в этом случае препроцессор не обрабатывает min и max, и все работает ровно так, как и требуется.
Подсмотрел я это на днях в блоге у Raider'a, правда чуть позже вспомнил, что уже натыкался на использование данной техники в заголовках Boost, но потом как-то запамятовал...
Комментариев нет:
Отправить комментарий