当前位置: 首页 > news >正文

山东济南网站新闻百度人工优化

山东济南网站新闻,百度人工优化,做网站用到什么开发语言,珠海网站建用成员函数重载实现is_base_of std::is_base_of是一个C 11标准中用于判断某个类是否是另一个类父类的类模板。 #include "killCmake.h"#include<string>using namespace std;class A { };class B : public A { public:B(int x): x_(x){} private:int x_; };/…

用成员函数重载实现is_base_of

std::is_base_of是一个C++ 11标准中用于判断某个类是否是另一个类父类的类模板。

#include "killCmake.h"#include<string>using namespace std;class A
{
};class B : public A
{
public:B(int x): x_(x){}
private:int x_;
};//template<typename Base,typename Derived>
//struct is_base_of {...};int main()
{std::cout << std::is_base_of<A, A>::value << std::endl;std::cout << std::is_base_of<B, A>::value << std::endl;std::cout << std::is_base_of<A, B>::value << std::endl;return 0;
}

在这里插入图片描述
C++ 17标准中又引入了变量模板简化std::is_base_of的书写。

#include "killCmake.h"#include<string>using namespace std;class A
{
};class B : public A
{
public:B(int x): x_(x){}
private:int x_;
};//template<typename Base,typename Derived>
//struct is_base_of {...};template<class Base,class Derived>
inline constexpr bool is_base_of_v_v = std::is_base_of<Base, Derived>::value;int main()
{std::cout << std::is_base_of<A, A>::value << std::endl;std::cout << std::is_base_of<B, A>::value << std::endl;std::cout << std::is_base_of<A, B>::value << std::endl;std::cout << std::endl;// 简化版本std::cout << is_base_of_v_v<A, A> << std::endl;std::cout << is_base_of_v_v<B, A> << std::endl;std::cout << is_base_of_v_v<A, B> << std::endl;return 0;
}

在这里插入图片描述
std::is_base_of的实现代码,写一个IsBaseOf类模板来实现,代码如下。

#include "killCmake.h"#include<string>using namespace std;class A
{
};class B : public A
{
public:B(int x): x_(x){}
private:int x_;
};//template<typename Base,typename Derived>
//struct is_base_of {...};template<class Base,class Derived>
inline constexpr bool is_base_of_v_v = std::is_base_of<Base, Derived>::value;template<typename Base,typename Derived> // <父类,子类>
class IsBaseOf
{
private:template<typename T>static std::true_type test(T*);template<typename>static std::false_type test(void*);template<typename B,typename D>static auto test_middle() -> decltype(test<B>(static_cast<D*>(nullptr)));// 调用test()public:static constexpr bool value = IsSameType < std::integral_constant<bool, std::is_class_v<Base>&& std::is_class_v<Derived>&& decltype(test_middle<Base, Derived>())::value, std::integral_constant<bool, true>>::value;
};int main()
{std::cout << std::is_base_of<A, A>::value << std::endl;std::cout << std::is_base_of<B, A>::value << std::endl;std::cout << std::is_base_of<A, B>::value << std::endl;std::cout << std::endl;// 简化版本std::cout << is_base_of_v_v<A, A> << std::endl;std::cout << is_base_of_v_v<B, A> << std::endl;std::cout << is_base_of_v_v<A, B> << std::endl;return 0;
}

未完待续,干他菊花就对了

http://www.mmbaike.com/news/110781.html

相关文章:

  • 河南企起网站建设怎样淘宝seo排名优化
  • 网站模板源代码下载交换神器
  • 哪家网站建设公司专业运营推广
  • 照明网站模板百度权重划分等级
  • mac 用什么软件做网站好seo网站推广什么意思
  • 邯郸移动网站建设公司网络游戏推广平台
  • 株洲网站建设优化企业中国网站排名网
  • 关于做展厅的网站上海搜索引擎优化公司
  • 日语网站建设需要注意什么网站免费推广软件
  • 廊坊市广阳区建设局网站建站系统哪个比较好
  • 网站建设维护论文买淘宝店铺多少钱一个
  • 绑定网站域名怎么做ps培训
  • 第一次找人做网站淘宝热搜关键词排行榜
  • 做相亲网站赚钱吗营业推广促销
  • 网络营销 网站建设厦门seo
  • php动态网站作业搜索引擎优化方法
  • 网站建设费放什么科目网络营销策划方案模板
  • 百度网站关键词排名查询百度文库首页
  • 二手书的网站建设湖南seo网站策划
  • 灰色网站免费关键词优化工具
  • 珠海停车app网站推广和网站优化
  • 日本人做的网站本子网络营销的用户创造价值
  • 添加qq好友的超链接做网站seo百度首页排名业务
  • 外国人可以在中国做网站吗seo网站优化师
  • 怎么做自己的简历网站seo手机优化软件哪个好用
  • 剑三做月饼活动网站精准推广
  • .net做网站开发百度指数排名明星
  • 做网站的那些高清图上哪里找谷歌搜索引擎为什么打不开
  • 郑州设计网站的公司上海排名优化seobwyseo
  • 做设计的靠谱兼职网站有哪些深圳招聘网络推广