C++中的类型推导主要适用于以下几种情况:
template <typename T>
T add(T a, T b) {
return a + b;
}
int main() {
int x = 1, y = 2;
int sum = add(x, y); // 编译器自动推导出T为int类型
return 0;
}
auto
关键字,允许变量声明时自动推导变量的类型。这可以简化代码并减少类型错误。例如:auto pi = 3.14159; // 编译器自动推导出pi的类型为double
auto str = "Hello, World!"; // 编译器自动推导出str的类型为const char*
decltype
关键字用于推导表达式的类型。与auto
不同,decltype
并不计算表达式的值,而只是推断其类型。例如:int x = 42;
decltype(x) y = 100; // 编译器自动推导出y的类型为int,因为x的类型是int
template <typename T, typename U>
auto add(T t, U u) -> decltype(t + u) {
return t + u;
}
在这些情况下,C++的类型推导机制可以简化代码、提高可读性并减少类型错误。