国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

模板特化的多維度挖掘

這篇具有很好參考價值的文章主要介紹了模板特化的多維度挖掘。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??假如我有一個需求,就是如果傳入的參數是int類型,我就輸出int類型,否則就輸出T。很顯然,根據模板的基礎知識,我們可以這么寫

template <class T>
void f(T) {
    std::cout << "T\n";
}

template <>
void f(int) {
    std::cout << "int\n";
}

??除了這樣寫,還有別的寫法嗎。我們可以思考一下.................這里我們其實可以用std::enable_if_t來實現,它相當于給std::enable_if的type類型起了一個別名,我們先看怎么寫。

template <class T>
std::enable_if_t<std::is_same_v<int, T>> g(T) {
    std::cout << "int\n";
}

template <class T>
std::enable_if_t<!std::is_same_v<int, T>> g(T) {
    std::cout << "T\n";
}

??假設我現在再提一個需求,就是只能實現一個函數,且只能接受int類型的參數,其它類型均不能通過編譯。這時候如果你僅僅單純地void f(int),那么即便你傳入double類型進來,它也會發(fā)生類型轉換并執(zhí)行這個函數,這并不是我們想要的。因此,我們可以考慮用std::enable_if_t來實現。

template <class T>
std::enable_if_t<std::is_same_v<int, T>> h(T) {
    std::cout << "strictly int\n";
}

??好的,事情到這里結束。??文章來源地址http://www.zghlxwxcb.cn/news/detail-709975.html

到了這里,關于模板特化的多維度挖掘的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包