在使用python2.7和c++res时减少冲突

2024-07-08 07:28:34 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的c++代码中同时使用c++rest和python库时,我得到了一个未定义函数“tolower”的错误。 我理解是因为在python pyport.h中

#undef tolower
#define tolower(c) towlower(btowc(c))

但同时c++rest/asyncrt_实用程序.cppcmp类中有一个名为tolower的私有方法。你知道吗

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;
    }
};

有什么解决办法?如何确保编译同时进行

另外,我试过检查在我的代码中调用这些.h文件的顺序。 c++rest总是在列表的末尾调用。你知道吗

如有任何建议,将不胜感激。我想讨论一下类似的事情。我想了解更多关于编译器的知识以及它们是如何工作的


Tags: 代码rightrestautosizestringreturnif

热门问题