конфликт между пользователями при использовании python2.7 и c ++ rest - PullRequest
0 голосов
/ 25 января 2019

При использовании библиотек 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 всегда вызывается в конце списка.

Любые предложения приветствуются.Хотите поговорить о похожих вещах.Я хотел бы узнать больше о компиляторах и как они работают

...