При использовании библиотек c ++ rest и python вместе в моем коде c ++ я получаю ошибку функции "tolower", которая не определена.Я понимаю, потому что в python pyport.h есть
#undef tolower
#define tolower(c) towlower(btowc(c))
Но в то же время c ++ rest / asyncrt_utils.cpp есть частный метод tolower в классе cmp.
class cmp
{
public:
static int icmp(std::string left, std::string right)
{
size_t i;
for (i = 0; i < left.size(); ++i)
{
if (i == right.size()) return 1;
auto l = cmp::tolower(left[i]);
auto r = cmp::tolower(right[i]);
if (l > r) return 1;
if (l < r) return -1;
}
if (i < right.size()) return -1;
return 0;
}
private:
static char tolower(char c)
{
if (c >= 'A' && c <= 'Z')
return static_cast<char>(c - 'A' + 'a');
return c;
}
};
Какое может быть решение для этого?Как убедиться, что компиляция происходит, сохраняя оба значения
PS Я попытался проверить порядок, в котором эти .h файлы вызываются в моем коде.c ++ rest всегда вызывается в конце списка.
Любые предложения приветствуются.Хотите поговорить о похожих вещах.Я хотел бы узнать больше о компиляторах и как они работают