使用python2.7和c ++ rest时降低冲突

时间:2019-01-25 15:49:07

标签: python c++ boost boost-python cpprest-sdk

在我的c ++代码中一起使用c ++ rest和python库时,出现函数“ tolower”的错误,该错误未定义。 我了解了,因为在python pyport.h中有一个

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

但是同时c ++ rest / asyncrt_utils.cpp在cmp类中有一个称为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;
    }
};

对此有什么解决方案?我如何确保编译同时保留两者

P.S。我尝试检查在我的代码中调用这些.h文件的顺序。 总是在列表末尾调用c ++ rest。

任何建议将不胜感激。希望就类似的事情进行讨论。我想了解更多有关编译器及其工作原理的信息

0 个答案:

没有答案