使用C++模板判断是否基本类型

简介: 使用C++模板判断是否基本类型

可以使用define来简化.


方法1

template <typename T>
struct is_double
{
  operator bool()
  {
  return false;
  }
};
template <>
struct is_double<double>
{
  operator bool()
  {
  return true;
  }
};
//使用方法
if (!is_double<int>())


方法2

#include <iostream>
#include <string>
using namespace std;
struct FalseType
{
    static bool Get()
    {
        return false;
    }
};
struct TrueType
{
    static bool Get()
    {
        return true;
    }
};
template<class T>
struct TypeTraits
{
    typedef FalseType PODTYPE;
};
template<>
struct TypeTraits<int>
{
    typedef TrueType PODTYPE;
};
template<>
struct TypeTraits<char>
{
    typedef TrueType PODTYPE;
};
template<>
struct TypeTraits<double>
{
    typedef TrueType PODTYPE;
};
template<>
struct TypeTraits<float>
{
    typedef TrueType PODTYPE;
};
//使用方法
TypeTraits<int>::PODTYPE::Get()

目录
相关文章
|
1月前
|
存储 算法 C++
C++ STL 初探:打开标准模板库的大门
C++ STL 初探:打开标准模板库的大门
95 10
|
3月前
|
编译器 C++
【C++】——初识模板
【C++】——初识模板
【C++】——初识模板
|
1月前
|
编译器 程序员 C++
【C++打怪之路Lv7】-- 模板初阶
【C++打怪之路Lv7】-- 模板初阶
16 1
|
1月前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
41 0
C++入门6——模板(泛型编程、函数模板、类模板)
|
1月前
|
算法 编译器 C++
【C++篇】领略模板编程的进阶之美:参数巧思与编译的智慧
【C++篇】领略模板编程的进阶之美:参数巧思与编译的智慧
79 2
|
1月前
|
存储 编译器 C++
【C++篇】引领C++模板初体验:泛型编程的力量与妙用
【C++篇】引领C++模板初体验:泛型编程的力量与妙用
38 2
|
1月前
|
存储 算法 编译器
【C++】初识C++模板与STL
【C++】初识C++模板与STL
|
1月前
|
编译器 C++
【C++】模板进阶:深入解析模板特化
【C++】模板进阶:深入解析模板特化
|
2月前
|
存储 算法 程序员
C++ 11新特性之可变参数模板
C++ 11新特性之可变参数模板
55 0
|
3月前
|
并行计算 测试技术 开发工具
【简历模板】c/c++软件工程师
【简历模板】c/c++软件工程师
74 0