🍓decltype类型指示符
2022-5-1
| 2023-8-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
C++11 引入了decltype类型说明,其作用是选择并返回操作数的数据类型,编译器将对表达式进行分析得出结果的类型但不会真正求值:
 
decltype处理顶层const和引用的方式与auto有些不同,如果decltype使用的表达式是一个变量,则decltype返回该变量的类型(包括顶层const和引用)。只有在decltype表达式中引用不被当做其绑定的对象的别名。
 
如果decltype使用的表达式不是一个变量,则decltype返回表达式结果对应的类型。如果表达式的内容是解引用操作,则decltype将得到引用类型。
 
decltype和 auto的另一处重要区别是,decltype的结果类型与表达式形式密切相关。注意:如果 decltype使用的是一个不加括号的变量,则得到的结果就是该变量的类型;如果给变量加上了一层或多层括号,则 decltype会得到引用类型,因为变量是一种可以作为赋值语句左值的特殊表达式。
 
为了得到变量的引用类型有一种简单的方式就是decltype((variable)),在变量名外加上括号就成为一个返回变量的表达式,并且求值结果是左值。因而,decltype返回的是引用。decltype(variable)仅当变量本身是引用时才会返回引用类型。
  • C++
  • auto关键字C++11标准库类型string
    目录