溫馨提示×

C++函數(shù)模板怎樣實現(xiàn)類型推導(dǎo)

c++
小樊
81
2024-11-09 01:31:27
欄目: 編程語言

在C++中,函數(shù)模板可以通過使用關(guān)鍵字autodecltype來實現(xiàn)類型推導(dǎo)。這樣,編譯器可以根據(jù)傳遞給函數(shù)的參數(shù)自動推斷出正確的函數(shù)模板類型。下面是一個簡單的示例:

#include <iostream>
#include <typeinfo>

// 函數(shù)模板定義
template <typename T>
auto add(T a, T b) -> decltype(a + b) {
    return a + b;
}

int main() {
    int x = 5, y = 3;
    double p = 4.2, q = 3.8;

    // 使用類型推導(dǎo),編譯器會自動推斷出正確的函數(shù)模板類型
    std::cout << "x + y = " << add(x, y) << std::endl;
    std::cout << "p + q = " << add(p, q) << std::endl;

    return 0;
}

在這個示例中,我們定義了一個名為add的函數(shù)模板,它接受兩個參數(shù)ab,并返回它們的和。通過使用auto關(guān)鍵字和decltype關(guān)鍵字,我們告訴編譯器根據(jù)傳遞給函數(shù)的參數(shù)自動推斷出正確的函數(shù)模板類型。這樣,我們可以用這個函數(shù)模板來處理不同類型的參數(shù),而無需顯式指定模板類型。

0