前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++调试技巧之推断类型

C++调试技巧之推断类型

作者头像
公众号guangcity
发布2020-10-30 12:09:28
4860
发布2020-10-30 12:09:28
举报
文章被收录于专栏:光城(guangcity)光城(guangcity)

让tips帮助我们成长

在后面的分享中,将会从以下几点重点分享:

1)vscode开发技巧及指南

2)日常开发调试技巧

3)开发过程中的语法糖

4)开发过程中的奇能淫巧

5)不同语言及技术分析

6)一些基础及算法分析

7)工作求职指南

期待您的留言,补充分享点。

今天在写C++17特性笔记的时候,学会了一个调试技巧。

简单来说就是:如何查看auto的类型是什么呢

例如:

代码语言:javascript
复制
char s[10] = "hello";
auto type = s;

当前type类型到底是char *还是char[10]呢?

类似的问题比如在分析引用坍缩、万能引用的时候,这个技巧会帮助你从迷茫的理论中走向实践的道路。

要查看当前类型其实只需要如下操作:

代码语言:javascript
复制
template <typename>
struct TD;

只声明而不定义,那么在主函数中我们调用该struct,必然报错,由于模板推断的机制,编译器必然会告诉你当前的类型是什么。具体如下:

代码语言:javascript
复制
char s[10] = "hello";
auto type = s;
TD<decltype(type)>(); // error

error处结果为:error: invalid use of incomplete type ‘struct TD<char*>’。此时我们可以看到推断类型是什么了,这是一个非常不错,但又实用的技巧。

本节完~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档