美文网首页
无法将参数 1 从“const char *”转换为“char

无法将参数 1 从“const char *”转换为“char

作者: 863cda997e42 | 来源:发表于2018-11-06 15:52 被阅读21次

今天在开发中遇到了下面这个问题。

error C2664: “bool InUse(char *)”: 无法将参数 1 从“const char *”转换为“char *”

函数定义的参数类型是char *,实际传入函数的是const char * 类型。
代码如下:

#include <iostream>
#include <set>
using namespace std;

struct ltstr
{
    bool operator()(const char* s1, const char* s2) const
    {
        return strcmp(s1, s2) < 0;
    }
};

typedef set<char *, ltstr> CPackageSet;
CPackageSet g_setUsePackage;

bool InUse(char *name)
{
    return (g_setUsePackage.find(name) != g_setUsePackage.end());
}


int main()
{
    const char * s = "sdfsd";
    InUse(s);//提示有错误

    char * t = "asdf";
    size_t len = strlen(t);
    cout << len << endl;
    return 0;
}

如果参数类型是const char *,实际传入的是char * 类型,经过测试是没有问题的。

相关文章

网友评论

      本文标题:无法将参数 1 从“const char *”转换为“char

      本文链接:https://www.haomeiwen.com/subject/wzjyxqtx.html