欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中std::conditional的使用說明

 更新時間:2022年07月11日 14:46:40   作者:年年年年年  
這篇文章主要介紹了C++中std::conditional的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

std::conditional的使用

今天在項目中發(fā)現(xiàn)C++11新特性中的std::conditional關鍵詞,經(jīng)過查詢資料,學習到了其中含義。

具體用法

std::conditional<表達式, 類型1, 類型2>

具體理解為

如果表達式為真則定義的變量為類型1,如果表達式為假則定義的變量為類型2。

如:

typedef typename std::conditional<true, int, double>::type Type1;// => int Type1

則Type1的類型為int類型

以下顯示了更多的例子

#include <iostream>
#include <type_traits>
#include <typeinfo>
 
int main() 
{
    typedef typename std::conditional<true, int, double>::type Type1;
    typedef typename std::conditional<false, int, double>::type Type2;
     typedef typename std::conditional<sizeof(int) == sizeof(double), int, double>::type Type3;
 
    std::cout << typeid(Type1).name() << std::endl; // 輸出:i (代表int類型)
    std::cout << typeid(Type2).name() << std::endl; // 輸出:d (代表double類型)
    std::cout << typeid(Type3).name() << std::endl; // 輸出:d (代表double類型)
    
    Type1 a = 3.1; // 由于Type1的類型為int所以3.1被強制轉換為3
    Type2 b = 4.2; // Type2的類型為double,4.2保存在變量b中
    std::cout << a +  b << std::endl; // 3+4.2,最終輸出為7.2
}

利用std::conditional實現(xiàn)變量的多類型

//std::conditional<bool, A, B>::type 
const bool kEnableOffsetRender = false; 
class LoginDialog : public std::conditional<kEnableOffsetRender, ui::WindowImplBase, nim_comp::ShadowWndBase>::type
{
public:
    //todo
};
 
/*
    if(kEnableOffsetRender)
    {
        type = ui::WindowImpBase;
    }
    else
    {
        type = nim_comp::ShadowWndBase;
    }
*/

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • C語言實現(xiàn)簡單三子棋游戲

    C語言實現(xiàn)簡單三子棋游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單三子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • C++ explicit構造函數(shù)實例解析

    C++ explicit構造函數(shù)實例解析

    這篇文章主要介紹了C++ explicit構造函數(shù),需要的朋友可以參考下
    2014-07-07
  • C語言 深入解讀數(shù)據(jù)結構之堆的實現(xiàn)

    C語言 深入解讀數(shù)據(jù)結構之堆的實現(xiàn)

    堆就是用數(shù)組實現(xiàn)的二叉樹,所以它沒有使用父指針或者子指針。堆根據(jù)“堆屬性”來排序,“堆屬性”決定了樹中節(jié)點的位置
    2021-11-11
  • 淺析C++中的函數(shù)重載

    淺析C++中的函數(shù)重載

    這篇文章主要介紹了淺析C++中的函數(shù)重載,在C++中,可以為兩個或兩個以上的函數(shù)提供相同的函數(shù)名稱,只要參數(shù)類型不同,或者參數(shù)類型相同而參數(shù)個數(shù)不同,又或者參數(shù)類型參數(shù)個數(shù)相同,參數(shù)次序不同,稱為函數(shù)重載,需要的朋友可以參考下
    2023-08-08
  • ?C++?new?和?delete?關鍵字詳解

    ?C++?new?和?delete?關鍵字詳解

    這篇文章主要介紹了?C++?new?和?delete?關鍵字詳解,文章圍繞主題展開new?和?delete?的使用方法的介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • C++虛函數(shù)注意事項

    C++虛函數(shù)注意事項

    這篇文章主要給大家分享了EC++虛函數(shù)注意事項,
    2022-01-01
  • linux根據(jù)pid獲取進程名和獲取進程pid(c語言獲取pid)

    linux根據(jù)pid獲取進程名和獲取進程pid(c語言獲取pid)

    status文件,第一行的Name即為進程名,C程序實現(xiàn)根據(jù)PID獲取進程名和根據(jù)進程名獲取PID,大家參考使用吧
    2013-12-12
  • C++中抽象類和接口的區(qū)別介紹

    C++中抽象類和接口的區(qū)別介紹

    抽象類(abstract class)和接口(interface)的概念是面向對象設計中常用的概念, 也是比較容易混淆的概念. 在這里, 我提出一種區(qū)分它們的思路
    2013-04-04
  • C++輸出問題:保留兩位小數(shù)

    C++輸出問題:保留兩位小數(shù)

    這篇文章主要介紹了C++輸出問題:保留兩位小數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語言中讀取時間日期的基本方法

    C語言中讀取時間日期的基本方法

    這篇文章主要介紹了C語言中讀取時間日期的基本方法,分別是time()函數(shù)和gmtime()函數(shù)的使用,注意返回值的區(qū)別,需要的朋友可以參考下
    2015-08-08

最新評論