WinNT.h содержит следующие строки в установке VS2008 SP1:
#define BitTest _bittest
#define BitTestAndComplement _bittestandcomplement
#define BitTestAndSet _bittestandset
#define BitTestAndReset _bittestandreset
#define InterlockedBitTestAndSet _interlockedbittestandset
#define InterlockedBitTestAndReset _interlockedbittestandreset
У меня есть несколько шаблонов, основанных на BitTest <> ()
Кто-нибудь знает простой способ отключить эти # определения?
Часто MS действительно предоставляет символ #define XXX, который, если он определен, отключит какую-то оскорбительную часть своего заголовка - например, NOMINMAX.
Мне не удалось найти такое решение вышеуказанной проблемы.
Если вы разделяете разочарование по поводу многих сомнительных решений Microsoft, читайте дальше. Если нет, остановитесь здесь. ;)
Editorializing:
- Почему Microsoft не могла просто использовать
_bittest себя ???
- Или почему они не могли использовать BITTEST, как все знают вас
следует - всегда используйте все заглавные буквы для
макросы!
- Microsoft все еще #defining
вещи в 2010 году ?! WTF?