auto与decltype都是C++里处理类型的指示符,它们的使用场景如下:
auto | decltype |
---|---|
在我们需要给变量赋值的时候,简单的程序往往可以通过观察得出表达式的类型,但在一些大型程序中这样做往往是行不通的,为此可以使用auto指示符让编译器来推算变量的类型 ,然后初始化 | 与auto指示符不同之处在于decltype函数只推算变量的类型,不会初始化变量 |
auto一般会忽略顶层const(指针本身是个常量),如果希望判断它是一个顶层const,需要单独指出 | decltype类型指示符的结果类型与表达式密切相关,decltype((value)),双层括号的引用永远是引用,单层括号的结果只有当本身是一个引用的时候才算得上是引用 |