如何分别专门针对整数和浮点类型的模板函数?

更新

考虑功能template<typename T> void Fun(T t);如何分别对整数和浮点类型使用不同的实现?

我想构建块std::enable_ifstd::is_integralstd::is_floating_point但我不能以优雅的方式将它们放在一起:-(。

PS我有C ++ 11可用。

塔斯社

请参阅cppreference.comstd :: enable_if的示例代码

编辑:

修改了上面链接中的代码,如下所示:

#include <type_traits>
#include <iostream>


template<class T>
typename std::enable_if<std::is_integral<T>::value>::type foo(T t) 
{
    std::cout << "is integral" << std::endl;
}

template<class T>
typename std::enable_if<std::is_floating_point<T>::value>::type foo(T t) 
{
    std::cout << "is real" << std::endl;
}

int main()
{
    foo(1); 
    foo(1.0);
}

的定义enable_iftemplate< bool B, class T = void > struct enable_if;这为返回值类型提供了以下选项:

template<class T>
typename std::enable_if<std::is_integral<T>::value>::type foo(T t) // void return type

template<class T>
typename std::enable_if<std::is_integral<T>::value, T>::type foo(T t) // return type from template parameter

template<class T>
typename std::enable_if<std::is_integral<T>::value, size_t>::type foo(T t) // fixed return type

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何覆盖专门针对单元上的类型的组件函数?

来自分类Dev

如何专门设计用于返回不同类型的模板函数?

来自分类Dev

如何专门针对一种类型的可变参数模板类?

来自分类Dev

统一函数使用模板专门化和接口来调用实例和原始类型

来自分类Dev

如何基于类型相关的类型专门化C ++模板类函数?

来自分类Dev

区分模板中的浮点类型与整数

来自分类Dev

专门针对void参数的模板

来自分类Dev

如何专门化模板成员函数?

来自分类Dev

如何编写模板函数来添加整数但连接字符串和字符类型?

来自分类Dev

如何专门化模板函数以区分void和non-void函数参数

来自分类Dev

如何使C ++模板化函数与返回类型无关,以便将来进行专门化

来自分类Dev

如何专门针对特定泛型类型的方法?

来自分类Dev

专门针对模板类的模板函子

来自分类Dev

C ++专门针对枚举的函数

来自分类Dev

在C ++ 11中,我如何专门化基于返回类型接受函数对象的函数模板?

来自分类Dev

如何对多种数据类型(字符串,整数,浮点数)使用模板?

来自分类Dev

如何根据模板类型定义浮点常量?

来自分类Dev

如何专门化模板类成员函数?

来自分类Dev

函数指针类型和值的部分类专门化

来自分类Dev

C ++专门针对特定类型的lambda

来自分类Dev

模板类的专门构造函数

来自分类Dev

如何专门化容器和枚举的模板

来自分类Dev

如何从模板类型数组获取整数类型

来自分类Dev

专门针对哪个函数重载的规则

来自分类Dev

如何正确比较整数和浮点值?

来自分类Dev

如何比较浮点数和整数

来自分类Dev

整数和实数类型的不同模板行为

来自分类Dev

如何分别读取整数

来自分类Dev

C ++:如何专门针对类似于数组数组的类A的成员函数来处理A <A <T>>?

Related 相关文章

  1. 1

    如何覆盖专门针对单元上的类型的组件函数?

  2. 2

    如何专门设计用于返回不同类型的模板函数?

  3. 3

    如何专门针对一种类型的可变参数模板类?

  4. 4

    统一函数使用模板专门化和接口来调用实例和原始类型

  5. 5

    如何基于类型相关的类型专门化C ++模板类函数?

  6. 6

    区分模板中的浮点类型与整数

  7. 7

    专门针对void参数的模板

  8. 8

    如何专门化模板成员函数?

  9. 9

    如何编写模板函数来添加整数但连接字符串和字符类型?

  10. 10

    如何专门化模板函数以区分void和non-void函数参数

  11. 11

    如何使C ++模板化函数与返回类型无关,以便将来进行专门化

  12. 12

    如何专门针对特定泛型类型的方法?

  13. 13

    专门针对模板类的模板函子

  14. 14

    C ++专门针对枚举的函数

  15. 15

    在C ++ 11中,我如何专门化基于返回类型接受函数对象的函数模板?

  16. 16

    如何对多种数据类型(字符串,整数,浮点数)使用模板?

  17. 17

    如何根据模板类型定义浮点常量?

  18. 18

    如何专门化模板类成员函数?

  19. 19

    函数指针类型和值的部分类专门化

  20. 20

    C ++专门针对特定类型的lambda

  21. 21

    模板类的专门构造函数

  22. 22

    如何专门化容器和枚举的模板

  23. 23

    如何从模板类型数组获取整数类型

  24. 24

    专门针对哪个函数重载的规则

  25. 25

    如何正确比较整数和浮点值?

  26. 26

    如何比较浮点数和整数

  27. 27

    整数和实数类型的不同模板行为

  28. 28

    如何分别读取整数

  29. 29

    C ++:如何专门针对类似于数组数组的类A的成员函数来处理A <A <T>>?

热门标签

归档