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

让tips帮助我们成长

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

1)vscode开发技巧及指南

2)日常开发调试技巧

3)开发过程中的语法糖

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

5)不同语言及技术分析

6)一些基础及算法分析

7)工作求职指南

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

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

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

例如:

char s[10] = "hello";
auto type = s;

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

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

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

template <typename>
struct TD;

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

char s[10] = "hello";
auto type = s;
TD<decltype(type)>(); // error

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

本节完~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值