decltype 是一个 C++11 关键字,用于在编译时获取表达式的类型,而不实际计算表达式的值。它通常用于以下几个方面:
int x = 22;
decltype(x) y; // y的类型为int
template <typename T, typename U>
auto add(T t, U u) -> decltype(t + u) {
return t + u;
}
struct MyStruct {
int x;
double y;
};
decltype(MyStruct::x) var; // var的类型为int
decltype(MyStruct::y) var2; // var2的类型为double