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

首頁 > 編程 > C++ > 正文

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

2020-01-26 14:46:03
字體:
來源:轉載
供稿:網友

__if_exists 語句
__if_exists 語句測試指定的標識符是否存在。如果該標識符存在,則執行指定的語句塊。
語法

__if_exists ( identifier ) { statements};

參數

參數 說明
identifier 要測試其存在性的標識符。
statements identifier 存在時要執行的一個或多個語句。

備注
若要實現最可靠的結果,請在以下約束條件下使用 __if_exists 語句。
只將 __if_exists 語句應用于簡單類型,而不是模板。
將 __if_exists 語句應用于類的內部或外部的標識符。請勿將 __if_exists 語句應用于局部變量。
請僅在函數的主體中使用該 __if_exists 語句。在函數主體外部,__if_exists 語句僅能測試完全定義的類型。
在測試重載函數時,不能測試特定形式的重載。
__if_exists 語句的補集是 __if_not_exists 語句。
請注意,此示例使用了模板,不建議這樣做。

// 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 語句
__if_not_exists 語句測試指定的標識符是否存在。如果該標識符不存在,則執行指定的語句塊。
語法

__if_not_exists ( identifier ) { statements};

參數

參數 說明
identifier 要測試其存在性的標識符。
statements identifier 不存在時要執行的一個或多個語句。

備注
若要實現最可靠的結果,請在以下約束條件下使用 __if_not_exists 語句。
只將 __if_not_exists 語句應用于簡單類型而不是模板。
將 __if_not_exists 語句應用于類的內部或外部的標識符。不要將 __if_not_exists 語句應用于局部變量。
僅在函數的主體中使用 __if_not_exists 語句。在函數主體的外部,__if_not_exists 語句僅能測試完全定義的類型。
在測試重載函數時,不能測試特定形式的重載。
__if_not_exists 語句的補集為 __if_exists 語句。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 那坡县| 筠连县| 鄂托克旗| 绥滨县| 双牌县| 剑河县| 盐亭县| 宣武区| 临澧县| 隆林| 油尖旺区| 库伦旗| 阿鲁科尔沁旗| 黑水县| 日土县| 荔波县| 舟山市| 新巴尔虎右旗| 乌兰察布市| 徐汇区| 昔阳县| 环江| 连南| 辽阳市| 右玉县| 伽师县| 铁岭市| 固安县| 绥化市| 浦县| 云南省| 清丰县| 绥芬河市| 全椒县| 津南区| 和林格尔县| 大方县| 监利县| 湖南省| 松潘县| 高安市|