gpt4 book ai didi

gcc - 传递 ‘const 此参数会丢弃限定符 [-fpermissive]

转载 作者:行者123 更新时间:2023-12-03 07:34:12 24 4
gpt4 key购买 nike

我有一个类Cache,它的函数 write 指定为

bool write(const MemoryAccess &memory_access, CacheLine &cl);

我这样调用这个函数。

const Cache *this_cache;
c = (a==b)?my_cache:not_cache;
c->write(memory_access,cl);

上面的行给了我以下错误

"passing ‘const Cache’ as ‘this’ argument of ‘bool Cache::write(const MemoryAccess&, CacheLine&)’ discards qualifiers [-fpermissive]."

这个参数是编译器特定的,它有助于代码修改和破坏本地命名空间变量优先级。但这里没有传递这样的变量。

最佳答案

由于 cconst Cache * 类型,因此只能对其调用 const 成员函数。

您有两个选择:

(1) 从c的声明中删除const

(2) 像这样更改Cache::write():

 bool write(const MemoryAccess &memory_access, CacheLine &cl) const;

(请注意末尾添加的 const。)

关于gcc - 传递 ‘const 此参数会丢弃限定符 [-fpermissive],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10765787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com