判断是否为浮点数类型

#include <iostream>
#include <string>
#include <functional>
#include <type_traits>void void_print()
{return;
}bool bool_print()
{return false;
}char char_print()
{return 'a';
}unsigned char uchar_print()
{return static_cast<unsigned char>(10);
}short short_print()
{return 100;
}unsigned short ushort_print()
{return 100;
}int int_print()
{return -1;
}unsigned int uint_print()
{return 0;
}long long_print()
{return 10;
}unsigned long ulong_print()
{return 10;
}long long longlong_print()
{return 10;
}unsigned long long ulonglong_print()
{return 10;
}float float_print()
{return 1.0f;
}double double_print()
{return 1.0;
}std::string string_print()
{return std::string("abc");
}const char* chs = "const char";
const char* const_char_print()
{return chs;
}class A
{
public:A(){a = false;b = 'a';c = static_cast<unsigned char>(10);d = 11;e = 12;f = 1;g = 2;h = 3;i = 4;j = 5;k = 6;l = 7.0f;m = 8.0;n = "std::string";o = "const char";}virtual ~A(){std::cout << __FUNCTION__ << ": " << __LINE__ << ": run here " << std::endl;}void void_print(){return;}bool bool_print(){return a;}char char_print(){return b;}unsigned char uchar_print(){return c;}short short_print(){return d;}unsigned short ushort_print(){return e;}int int_print(){return f;}unsigned int uint_print(){return g;}long long_print(){return h;}unsigned long ulong_print(){return i;}long long longlong_print(){return j;}unsigned long long ulonglong_print(){return k;}float float_print(){return l;}double double_print(){return m;}std::string string_print(){return n;}const char* const_char_print(){return o;}public:virtual A* creat_object(){return new A();}virtual std::string print_typename(){return std::string("A");}public:bool a;char b;unsigned char c;short d;unsigned short e;int f;unsigned int g;long h;unsigned long i;long long j;unsigned long long k;float l;double m;std::string n;const char* o;
};class B : public A
{
public:B() : A(){}public:virtual A* create_object(){return new B();}virtual std::string print_typename(){return std::string("B");}
};int main()
{std::cout << "This Dome: is_floating_point" << std::endl;bool a;char b;unsigned char c;short d;unsigned short e;int f;unsigned int g;long h;unsigned long i;long long j;unsigned long long k;float l;double m;std::string n;const char* o = "const char";a = false;b = 'a';c = static_cast<unsigned char>(10);d = 11;e = 12;f = 1;g = 2;h = 3;i = 4;j = 5;k = 6;l = 7.0f;m = 8.0;n = "std::string";// Step1:if(std::is_floating_point<void>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<bool>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<short>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<unsigned short>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<int>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<unsigned int>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<long>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<unsigned long>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<long long>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<unsigned long long>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<float>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<double>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<std::string>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<const char*>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}// Step2:if(std::is_floating_point<decltype (a)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (b)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (c)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (d)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (e)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (f)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (g)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (h)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (i)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (j)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (k)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (l)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (m)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (n)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype (o)>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}// 判断函数的返回值的类型if(std::is_floating_point<decltype(void_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(bool_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(char_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(uchar_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(short_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(ushort_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(int_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(uint_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(long_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(ulong_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(longlong_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(ulonglong_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(string_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(const_char_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}// 函数指针if(std::is_floating_point<decltype(std::declval<A>().void_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().bool_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().char_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().uchar_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().short_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().ushort_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().int_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().uint_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().long_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().ulong_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().longlong_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().ulonglong_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().string_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}if(std::is_floating_point<decltype(std::declval<A>().const_char_print())>::value){std::cout << __LINE__ << ": is floating point type " << std::endl;}else{std::cout << __LINE__ << ": isn't floating point type" << std::endl;}return 0;
}

元编程: is_floating_point<Tp>相关推荐

  1. C++11模版元编程的应用

    1.概述 关于C++11模板元的基本用法和常用技巧,我在程序员2015年2月B<C++11模版元编程>一文(后称前文)中已经做了详细地介绍,那么C++11模版元编程用来解决什么实际问题呢, ...

  2. 从 C++98 到 C++17,元编程是如何演进的? | 技术头条

    作者 | 祁宇 责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 不断出现的C++新的标准,正在改变元编程的编程思想,新的idea和方法不断涌现,让元编程变得越来越简单,让C++变得简单也 ...

  3. OpenERP与Python 元编程

    Python元编程被称为"黑魔法".Python界的传奇人物Tim Peters有云: 引用 Python的元编程这种黑魔法99%的人都无需了解,如果你拿不准是否应该用到它时,你不 ...

  4. Python中的元编程:一个关于修饰器和元类的简单教程

    作者 | Saurabh Kukade 译者 | 刘畅 出品 | AI科技大本营(ID:rgznai100) 最近,作者遇到一个非常有趣的概念,它就是用 Python 进行元编程.我想在本文中分享我对 ...

  5. Python中的元编程(Meta-Programming)

    元编程:是编写出可以操作的代码的行为,即用代码来操作另一个代码. Python中的元编程:一种构建函数和类的行为,这些函数和类可以通过修改.包装现有代码或生成代码来进行操纵. Python中元学习的实 ...

  6. JavaScript—ES6 元编程(5)

    几年前 ES6 刚出来的时候接触过 元编程(Metaprogramming)的概念,不过当时还没有深究.在应用和学习中不断接触到这概念,比如 mobx 5 中就用到了 Proxy 重写了 Observ ...

  7. IronRuby:元编程特性【method_missing】的使用

    在OpenExpressApp中写的自动化测试用例片段如下,之所以能这么易读,是因为可以使用Ruby的method_missing来进行方法调用: 打开模块 "部门管理" # 1 ...

  8. 周末话题-元编程(metaprogramming)

    在计算机行业永远不缺乏的是什么? 概念和新名词 我们已经见了太多太多的名词,现在都有点名词麻痹症了.就在这些名词中间有一个单词忽隐忽现的闪烁着自己的光芒----meta. 在牛津大辞典里对meta这样 ...

  9. 【Groovy】编译时元编程 ( 编译时方法注入 | 使用 buildFromSpec、buildFromString、buildFromCode 进行方法注入 )

    文章目录 一.在 MyASTTransformation#visit 方法中进行方法注入 1.使用 new AstBuilder().buildFromSpec 进行方法注入 2.使用 new Ast ...

  10. 【Groovy】编译时元编程 ( 编译时方法拦截 | 在 MyASTTransformation#visit 方法中进行方法拦截 )

    文章目录 一.在 MyASTTransformation#visit 方法中进行方法拦截 二.完整代码示例及进行编译时处理的编译过程 1.Groovy 脚本 Groovy.groovy 2.ASTTr ...

最新文章

  1. 微信小程序showModel使用注意
  2. 数据结构与算法:13 字符串与整数集合
  3. empress和queen区别_queen与empress
  4. HTTP权威指南记录 ---- Web服务器
  5. 提高开发效率之安卓模板(上面有四种模板的教程,我之前会两种,看完之后还是只会两种2333)
  6. 4、Power Query-智能汇总工作簿下的指定或所有工作表数据
  7. SQL Server 2005中的ROW_NUMBER和RANK
  8. 虚拟机CentOS8 网络配置
  9. python pass关键字神奇吗
  10. 为什么合伙公司,一定要重视退出机制呢?
  11. linux登录vnc的命令行,用VNC远程登陆linux (ZT)
  12. HDU1087 Super Jumping! Jumping! Jumping!【最长上升子序列+DP】
  13. 恒生分享| 云数据服务如何驱动金融业务?
  14. saspython知乎_SAS入门书籍有哪些值得推荐?
  15. 本科论文的标准格式是什么样的?
  16. 用PS给证件照排版教程
  17. wlh机器人_机器人在制造环节,AGV小车在物流环节
  18. 2020版idea ij 创建web项目和以往稍有不同。
  19. 杰理之蓝牙连接成功自动播放【篇】
  20. 【javaweb笔记1】自用

热门文章

  1. endnotex9安装后使用方法_EndNoteX9个人安装说明.PDF
  2. Photoshop(ps) CC 2017中文版 3264位
  3. Hi 小姐姐,这是你要的瘦身大长腿效果?
  4. Django数据映射 一对一 一对多 多对多
  5. BlackArch 字典收集(wordlistctl)
  6. 为项目选择的python解释器无效_尝试使PyCharm正常工作,并不断获取“未选择Python解释器”...
  7. 华为移动应用引擎安装第三方apk教程
  8. Linux查看主板型号及硬件信息
  9. neighbors.kneighbors_graph的原理和应用
  10. PHP查询微信的投诉单列表