У меня есть некоторый код 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()
метод?