中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
德钦县| 柏乡县| 海林市| 洛川县| 娱乐| 武胜县| 龙州县| 呼玛县| 天祝| 海宁市| 金平| 宁陕县| 苏州市| 循化| 新邵县| 临江市| 昌江| 芮城县| 平江县| 陇川县| 革吉县| 通道| 古浪县| 太仆寺旗| 新蔡县| 鹤峰县| 建始县| 将乐县| 广水市| 库伦旗| 荔波县| 琼海市| 阳城县| 中西区| 永川市| 固始县| 大兴区| 小金县| 塘沽区| 湘乡市| 武功县|