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++的類型推導機制可以簡化代碼、提高可讀性并減少類型錯誤。