C++ 面试题
目录

C++11 中 decltype 关键字的用法?

· 约 3 分钟读完 · 第 112 / 181 章

推荐答案

本题详细解读

decltype 关键字的作用

decltype 是 C++11 引入的关键字,用于推导表达式的类型。它可以在编译时获取表达式的类型,并将其用于变量声明、函数返回类型等场景。

基本用法

decltype 的基本语法如下:

其中,expression 是一个表达式,variable 是一个变量,其类型将与 expression 的类型相同。

示例解析

在推荐答案中,decltype(x) 用于推导变量 x 的类型。由于 x 是 int 类型,因此 y 也被推导为 int 类型。

与 auto 的区别

decltype 与 auto 都可以用于类型推导,但它们的行为有所不同:

  • auto 推导的是表达式的值的类型。
  • decltype 推导的是表达式的类型,包括引用和 const 修饰符。

例如:

复杂表达式中的使用

decltype 还可以用于推导复杂表达式的类型。例如:

在模板中的应用

decltype 在模板编程中非常有用,特别是在需要推导函数返回类型时。例如:

在这个例子中,decltype(a + b) 用于推导 add 函数的返回类型。

总结

decltype 是 C++11 中一个强大的工具,用于在编译时推导表达式的类型。它在变量声明、模板编程等场景中非常有用,能够帮助开发者编写更加灵活和通用的代码。