理解类型推导

本文最后更新于:August 26, 2022 am

本系列博客中,我们会详细讨论现代C++的类型推导规则,包括模板类型推导、auto关键字的使用以及decltype,最后介绍如何查看编译器推导出的类型

前言

C++98仅有一套适用于类型推导的规则:针对函数模板。C++11之后,添加了针对autodecltype两个关键字的规则。之后的C++14拓展了使用这两个关键字的语境。适用范围逐渐变得广泛的类型推导语法将开发者从重复地强制性声明类型的劳动中解放出来,同时也让C++编写的软件更加灵活——在某处改变了类型之后,类型推导系统将会将此改变传播到其它的地方。然而,这也可能导致一堆更难以理解的代码,因为编译器推导出的类型并不一定和我们想当然的类型一致

如果没有对类型推导系统的坚实理解做铺垫,要在现代C++上进行高效地编程几乎是不可能的。类型推导出现的场合实在太多了:调用函数模板时;auto关键字出现的几乎所有场景;decltype的表达式内,以及在C++14中的神秘的decltype(auto)结构

本系列博客将会详细讲解每一位C++开发者都需要理解的类型推导系统

Item1: 理解模板类型推导

Item2: 理解auto类型推导

Item3: 理解decltype

Item4: 获取类型推导结果


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!