91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C++ decay中如何處理自定義類型

c++
小樊
86
2024-08-29 23:58:52
欄目: 編程語言

在 C++ 中,std::decay 是一個模板元函數,用于將給定的類型轉換為其“衰減”后的類型。這通常用于從函數參數類型、引用類型或表達式類型中提取基礎類型。對于自定義類型,std::decay 的行為與內置類型相同。

以下是 std::decay 的基本用法:

#include<iostream>
#include <type_traits>

template<typename T>
void print_decayed_type() {
    using decayed_type = typename std::decay<T>::type;
    std::cout<< typeid(decayed_type).name()<< std::endl;
}

class MyClass {};

int main() {
    print_decayed_type<MyClass>();             // 輸出: MyClass
    print_decayed_type<MyClass&>();            // 輸出: MyClass
    print_decayed_type<const MyClass&>();      // 輸出: MyClass
    print_decayed_type<MyClass&&>();           // 輸出: MyClass
    print_decayed_type<MyClass*>();            // 輸出: MyClass*
    print_decayed_type<const MyClass*>();      // 輸出: MyClass const*
    print_decayed_type<MyClass[3]>();          // 輸出: MyClass*
    print_decayed_type<MyClass(int)>();        // 輸出: MyClass (*)(int)
    print_decayed_type<int MyClass::*>();     // 輸出: int MyClass::*
    print_decayed_type<int (MyClass::*)()>();   // 輸出: int (MyClass::*)()

    return 0;
}

在這個例子中,我們定義了一個名為 MyClass 的自定義類型,并使用 print_decayed_type 函數模板打印其衰減后的類型。可以看到,對于自定義類型,std::decay 的行為與內置類型相同。

0
昌图县| 桃园县| 浦北县| 安多县| 东乌| 山东省| 洪洞县| 辽阳县| 苏尼特右旗| 蕲春县| 鄂托克旗| 永胜县| 曲水县| 尖扎县| 阳泉市| 武川县| 三江| 西乌珠穆沁旗| 沂水县| 乐平市| 肥乡县| 灯塔市| 阜新市| 广宗县| 通渭县| 泸西县| 启东市| 富平县| 高青县| 泾川县| 海阳市| 旬邑县| 南康市| 尼木县| 无极县| 长垣县| 沙雅县| 福鼎市| 会同县| 昭苏县| 阿克苏市|