国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

C++編程中__if_exists與__if_not_exists語(yǔ)句的用法

2020-05-23 14:10:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了C++編程中__if_exists與__if_not_exists語(yǔ)句的用法,是C++中用于判斷指定的標(biāo)識(shí)符是否存在的基礎(chǔ)的條件判斷語(yǔ)句,需要的朋友可以參考下
 

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

__if_exists ( identifier ) { statements};

參數(shù)

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

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

 

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

__if_not_exists ( identifier ) { statements};

參數(shù)

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

 

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



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 浦东新区| 内乡县| 铜陵市| 四会市| 定州市| 永顺县| 大渡口区| 云南省| 肇州县| 玉林市| 博白县| 百色市| 南阳市| 于都县| 米脂县| 驻马店市| 德兴市| 巩留县| 宜都市| 台中市| 聂荣县| 甘泉县| 邯郸县| 苍南县| 安康市| 洛扎县| 阆中市| 赤城县| 双鸭山市| 葫芦岛市| 建瓯市| 辉南县| 望奎县| 都江堰市| 弥渡县| 通河县| 年辖:市辖区| 廊坊市| 苏尼特左旗| 阿荣旗| 苏州市|