在 C++ 中,decltype
是一个用于推导表达式类型的关键字,尤其在模板编程和类型依赖上下文中至关重要。以下是其核心要点和用法:
1. 基本作用
decltype
返回给定表达式或实体的静态类型,保留所有修饰符(如 const
、引用等)。
语法:decltype(entity)
或 decltype(expression)
2. 推导规则
(1) 实体(变量或函数名)
-
直接返回该实体的声明类型,包括
const
和引用。int x = 10; const int& rx = x; decltype(x) a = x; // int decltype(rx) b = x; // const int&
(2) 表达式
-
若表达式结果为 左值(lvalue) → 返回
T&
(左值引用)。 -
若表达式结果为 右值(xvalue)