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

C++編程中__if_exists與__if_not_exists語句的用法

 更新時(shí)間:2016年01月16日 15:02:53   投稿:goldensun  
這篇文章主要介紹了C++編程中__if_exists與__if_not_exists語句的用法,是C++中用于判斷指定的標(biāo)識(shí)符是否存在的基礎(chǔ)的條件判斷語句,需要的朋友可以參考下

__if_exists 語句
__if_exists 語句測(cè)試指定的標(biāo)識(shí)符是否存在。如果該標(biāo)識(shí)符存在,則執(zhí)行指定的語句塊。
語法

__if_exists ( identifier ) { 
statements
};

參數(shù)

參數(shù) 說明
identifier 要測(cè)試其存在性的標(biāo)識(shí)符。
statements identifier 存在時(shí)要執(zhí)行的一個(gè)或多個(gè)語句。

備注
若要實(shí)現(xiàn)最可靠的結(jié)果,請(qǐng)?jiān)谝韵录s束條件下使用 __if_exists 語句。
只將 __if_exists 語句應(yīng)用于簡單類型,而不是模板。
將 __if_exists 語句應(yīng)用于類的內(nèi)部或外部的標(biāo)識(shí)符。請(qǐng)勿將 __if_exists 語句應(yīng)用于局部變量。
請(qǐng)僅在函數(shù)的主體中使用該 __if_exists 語句。在函數(shù)主體外部,__if_exists 語句僅能測(cè)試完全定義的類型。
在測(cè)試重載函數(shù)時(shí),不能測(cè)試特定形式的重載。
__if_exists 語句的補(bǔ)集是 __if_not_exists 語句。
請(qǐng)注意,此示例使用了模板,不建議這樣做。

// the__if_exists_statement.cpp
// compile with: /EHsc
#include <iostream>

template<typename T>
class X : public T {
public:
  void Dump() {
   std::cout << "In X<T>::Dump()" << std::endl;

   __if_exists(T::Dump) {
     T::Dump();
   }

   __if_not_exists(T::Dump) {
     std::cout << "T::Dump does not exist" << std::endl;
   }
  }  
};

class A {
public:
  void Dump() {
   std::cout << "In A::Dump()" << std::endl;
  }
};

class B {};

bool g_bFlag = true;

class C {
public:
  void f(int);
  void f(double);
};

int main() { 
  X<A> x1;
  X<B> x2;

  x1.Dump();
  x2.Dump();

  __if_exists(::g_bFlag) {
   std::cout << "g_bFlag = " << g_bFlag << std::endl;
  }

  __if_exists(C::f) {
   std::cout << "C::f exists" << std::endl;
  }

  return 0;
}

Output

In X<T>::Dump()
In A::Dump()
In X<T>::Dump()
T::Dump does not exist
g_bFlag = 1
C::f exists

 

__if_not_exists 語句
__if_not_exists 語句測(cè)試指定的標(biāo)識(shí)符是否存在。如果該標(biāo)識(shí)符不存在,則執(zhí)行指定的語句塊。
語法

__if_not_exists ( identifier ) { 
statements
};

參數(shù)

參數(shù) 說明
identifier 要測(cè)試其存在性的標(biāo)識(shí)符。
statements identifier 不存在時(shí)要執(zhí)行的一個(gè)或多個(gè)語句。

備注
若要實(shí)現(xiàn)最可靠的結(jié)果,請(qǐng)?jiān)谝韵录s束條件下使用 __if_not_exists 語句。
只將 __if_not_exists 語句應(yīng)用于簡單類型而不是模板。
將 __if_not_exists 語句應(yīng)用于類的內(nèi)部或外部的標(biāo)識(shí)符。不要將 __if_not_exists 語句應(yīng)用于局部變量。
僅在函數(shù)的主體中使用 __if_not_exists 語句。在函數(shù)主體的外部,__if_not_exists 語句僅能測(cè)試完全定義的類型。
在測(cè)試重載函數(shù)時(shí),不能測(cè)試特定形式的重載。
__if_not_exists 語句的補(bǔ)集為 __if_exists 語句。

相關(guān)文章

  • Matlab利用prim算法實(shí)現(xiàn)迷宮的生成

    Matlab利用prim算法實(shí)現(xiàn)迷宮的生成

    普里姆算法(Prim算法),圖論中的一種算法,可在加權(quán)連通圖里搜索最小生成樹。本文將利用prim算法迷宮生成及其藝術(shù)渲染,感興趣的可以了解一下
    2022-10-10
  • C語言鏈表實(shí)現(xiàn)圖書管理系統(tǒng)

    C語言鏈表實(shí)現(xiàn)圖書管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言鏈表實(shí)現(xiàn)圖書管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C語言中二級(jí)指針解析(指向指針的指針)

    C語言中二級(jí)指針解析(指向指針的指針)

    這篇文章主要介紹了C語言中二級(jí)指針(指向指針的指針),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • C++中小數(shù)點(diǎn)輸出格式(實(shí)例代碼)

    C++中小數(shù)點(diǎn)輸出格式(實(shí)例代碼)

    下面小編就為大家?guī)硪黄狢++中小數(shù)點(diǎn)輸出格式(實(shí)例代碼)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • C++深度探索虛函數(shù)指針示例

    C++深度探索虛函數(shù)指針示例

    虛函數(shù)主要通過V-Table虛函數(shù)表來實(shí)現(xiàn),該表主要包含一個(gè)類的虛函數(shù)的地址表,可解決繼承、覆蓋的問題,下面這篇文章主要給大家介紹了如何通過一篇文章帶你掌握C++虛函數(shù)的來龍去脈,需要的朋友可以參考下
    2022-12-12
  • 詳解C語言中的符號(hào)常量、變量與算術(shù)表達(dá)式

    詳解C語言中的符號(hào)常量、變量與算術(shù)表達(dá)式

    這篇文章主要介紹了C語言中的符號(hào)常量、變量與算術(shù)表達(dá)式,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • C++中的自定義函數(shù)返回類型

    C++中的自定義函數(shù)返回類型

    這篇文章主要介紹了C++中的自定義函數(shù)返回類型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • OpenCV圖像處理之圖像拼接詳解

    OpenCV圖像處理之圖像拼接詳解

    本文主要介紹了如何使用C++?OpenCV實(shí)現(xiàn)圖像景拼接,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)OpenCV有一定的幫助,感興趣的可以了解一下
    2022-08-08
  • C++?Boost?ScopeExit超詳細(xì)講解

    C++?Boost?ScopeExit超詳細(xì)講解

    最近研究了boost中的ScopeExit,發(fā)現(xiàn)是個(gè)這是個(gè)很高級(jí)的特性,可以在作用域結(jié)束時(shí)自動(dòng)關(guān)閉已經(jīng)打開的資源或做某些清理操作,這篇文章主要介紹了C++?Boost?ScopeExit
    2022-11-11
  • OpenCV利用對(duì)比度亮度變換實(shí)現(xiàn)水印去除

    OpenCV利用對(duì)比度亮度變換實(shí)現(xiàn)水印去除

    OpenCV中去除水印最常用的方法是inpaint,通過圖像修復(fù)的方法來去除水印。本文將介紹另一種方法:利用對(duì)比度亮度變換去除水印,需要的朋友可以參考一下
    2021-11-11

最新評(píng)論