C++自动推断类型之C++11新标准中的decltype关键字详解

前言

C++自动推断类型之C++11新标准中的decltype关键字详解

完整代码,以及C/C++更多学习资料,私信我“代码“获取

本文是针对于C++11新标准:decltype关键字的一些使用的总结,希望对大家有少许帮助。

decltype意义

 为了满足有时我们希望从表达式的类型推断出要定义的变量类型,但是不想用该表达式的值初始化变量(如果要初始化就用auto了)。C++11新标准引入了decltype类型说明符,它的作用是选择并返回操作数的数据类型,在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值。

C++自动推断类型之C++11新标准中的decltype关键字详解

完整代码,以及C/C++更多学习资料,私信我“代码“获取

decltype基本用法

  • 基本的数据类型的推断
  • 函数返回值的类型推断
C++自动推断类型之C++11新标准中的decltype关键字详解

decltype相遇const

decltype相遇const,保留const。

C++自动推断类型之C++11新标准中的decltype关键字详解

decltype相遇引用

C++自动推断类型之C++11新标准中的decltype关键字详解

decltype相遇指针

C++自动推断类型之C++11新标准中的decltype关键字详解

完整代码,以及C/C++更多学习资料,私信我“代码“获取

decltype总结

decltype和auto都可以用来推断类型,但是二者有几处明显的差异

  • auto忽略顶层const,decltype保留顶层const
  • 对引用操作,auto推断出原有类型,decltype推断出引用
  • 对解引用操作,auto推断出原有类型,decltype推断出引用
  • auto推断时会实际执行,decltype不会执行,只做分析。

总之在使用中过程中和const、引用和指针结合时需要特别小心。

C++自动推断类型之C++11新标准中的decltype关键字详解

完整代码,以及C/C++更多学习资料,私信我“代码“获取

更多精彩


分享到:


相關文章: