以下是使用decltype关键字的一些示例:
1.获取变量的类型
int x = 42;
decltype(x) y; // y的类型为int,因为x的类型为int
2.返回表达式的类型
template <typename T, typename U>
auto add(T a, U b) -> decltype(a + b) {
return a + b;
}int main() {
auto result = add(1, 2); // result的类型为int,因为1和2都是int类型
return 0;
}
3.获取函数返回值的类型
template <typename T>
T max(T a, T b) {
return (a > b) ? a : b;
}int main() {
decltype(max(1, 2)) result = max(1, 2); // result的类型为int,因为max函数的返回值类型为int
return 0;
}
通过使用decltype关键字,可以方便地获取表达式或变量的类型信息,从而进行类型推导和类型检查等操作。