Как избежать конфликта имен с макросами, определенными в заголовочных файлах Windows?
У меня есть код C ++, который включает в себя метод под названиемCreateDirectory().
Ранее в коде использовались только STL и Boost, но недавно мне пришлось включить<windows.h>
чтобы я мог посмотретьCSIDL_LOCAL_APPDATA
.
Теперь этот код:
filesystem.CreateDirectory(p->Pathname()); // Actually create it...
Больше не компилируется:
error C2039: 'CreateDirectoryA' : is not a member of ...
Что соответствует этому макросу вwinbase.h
:
#ifdef UNICODE
#define CreateDirectory CreateDirectoryW
#else
#define CreateDirectory CreateDirectoryA
#endif // !UNICODE
Препроцессор переопределяет мой вызов метода. Есть ли какой-нибудь возможный способ избежать этого конфликта имен? Или я должен переименовать мойCreateDirectory()
метод?