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

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

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 * 类型,经过测试是没有问题的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,759评论 0 38
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,890评论 0 9
  • 标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的...
    杰伦哎呦哎呦阅读 5,105评论 0 8
  • ## 可重入函数 ### 可重入性的理解 若一个程序或子程序可以安全的被并行执行,则称其为可重入的;即当该子程序正...
    夏至亦韵阅读 4,084评论 0 0
  • 镜像加速器 国内访问Docker Hub可能会出现问题,如下图所示,拉取镜像超时,此时可以配置镜像加速器,国内很多...
    Clear1ove7阅读 3,957评论 0 0

友情链接更多精彩内容