• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++编程中__if_exists与__if_not_exists语句的用法

C++编程中__if_exists与__if_not_exists语句的用法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++编程,c++编程软件,c++编程软件下载,c++编程思想,c++游戏编程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

__if_exists 语句
__if_exists 语句测试指定的标识符是否存在。如果该标识符存在,则执行指定的语句块。
语法

__if_exists ( identifier ) { 
statements
};
</div>

参数

参数 说明
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;
}

</div>

Output

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

 

__if_not_exists 语句
__if_not_exists 语句测试指定的标识符是否存在。如果该标识符不存在,则执行指定的语句块。
语法

__if_not_exists ( identifier ) { 
statements
};
</div>

参数

参数 说明
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 语句。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++的虚析构详解及实例代码
  • C++二分查找(折半查找)算法实例详解
  • C++ 中函数重载、覆盖与隐藏详解
  • 学习C++编程的必备软件
  • C++调用Python基础功能实例详解
  • C++中函数重载实例详解
  • C++模版函数详解
  • 详解C++11中的右值引用与移动语义
  • C++详解默认参数的构造函数及简单实例代码
  • C++如何动态的生成对象详解

相关文章

  • 2017-05-28方阵顺时针旋转的实现代码
  • 2017-05-28深入探讨linux下进程的最大线程数、进程最大数、进程打开的文件数
  • 2017-05-28C语言编程中统计输入的行数以及单词个数的方法
  • 2017-05-28利用C语言替换文件中某一行的方法
  • 2017-08-17可变参数函数
  • 2017-05-28详解C语言中fseek函数和ftell函数的使用方法
  • 2017-05-28c++线程池实现方法
  • 2017-05-28C语言中system()函数的用法总结
  • 2017-05-28C++实现旋转数组的二分查找
  • 2017-05-28C语言以数据块的形式读写文件实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 非常经典的C语言趣味题目
    • 实例详解C/C++中extern关键字
    • 用C++实现一个链式栈的实例代码
    • linux下基于C语言的信号编程实例
    • Codeforces 842B. Gleb And Pizza 模拟
    • C++中sting类的简单实现方法
    • C实现的非阻塞方式命令行端口扫描器源码
    • C++实现正态随机分布的方法
    • C语言new操作的安全性分析
    • C++中给二维指针分配内存(实现代码)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有