首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >c++ const_cast gcc 8.2.1 -为什么忽略-限定符错误?

c++ const_cast gcc 8.2.1 -为什么忽略-限定符错误?
EN

Stack Overflow用户
提问于 2018-12-18 23:54:31
回答 1查看 856关注 0票数 2

下面的节目是gcc 8.2.1制作的:

警告:在强制转换结果类型上忽略的类型限定符类型-W忽略-限定符int * const ptrCast = const_cast(ptr);

代码语言:javascript
运行
复制
int main() {                                         
  int i = 0;                                         
  const int * const ptr = &i;                        
  int * const ptrCast = const_cast<int * const>(ptr);

  return *ptrCast;                                   
}

编译为: gcc -我们忽略了-限定符test.cc

根据我对const_cast的理解,这不应该发出警告。有人能证实这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-19 00:02:21

我想你误解了警告。

这与const的缺乏无关:

代码语言:javascript
运行
复制
const_cast<      int * const>(ptr)
//         const  

相反,它是关于const在这里的存在:

代码语言:javascript
运行
复制
const_cast<int * const>(ptr)
//               ^~~~~

在这里,const具有绝对的零效果,并且可以被删除,这就是警告的意思。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53842773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档