C ++模板函数类型推导

朋友们

我有以下代码:

template <typename T, void (*f)(T*)>
class callfn
{
  public:
  void operator()(T* obj) const
  {
    f(obj);
  }
};

void call(int* foo) {}

void test()
{
  callfn<int, call> fun;
  fun(1);
}

这往往工作正常。callfn但是该类型在各处使用,如果我可以这样称呼它,我会更喜欢

callfn<call> fun;

相反,无需修改的类型,call是否可以按照callfn可以T从的类型推断出类型的方式来安排一个或多个模板f

亚伦曼

不,您不需要知道struct或class的args,这些函数在c ++中具有模板类型推导。

论文n3602似乎解决了这一问题,因此似乎您不是唯一一个感到烦人的人(我也是)。我不知道它是否会被包括在内,但该论文至少意味着其他人正在考虑它。n6301将能够消除非类型模板参数所具有的冗余类型名。

另一件事(也在c ++ 14中)是make_unique下一个标准。自己编写代码也可能相对容易。

正如我在评论中指出的那样,目前尚不清楚您到底要达到什么目的,并且是否必须编写额外的类型实际上是一个障碍。

既然您在注释中明确指出,您需要使用它来删除a,因此unique_ptr我不确定这是怎么回事。

std::unique_ptr<int,void(*)(int*)> ptr(int_ptr,deleter);

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++模板函数类型推导

来自分类Dev

在C ++中将函数作为模板类型传递并推导其类型

来自分类Dev

C ++使用函数参数类型进行模板参数推导

来自分类Dev

C ++函数类型模板参数推导规则

来自分类Dev

C ++:将lambda作为带有模板参数的函数进行传递会使推导模板类型失败

来自分类Dev

在C ++中推导模板类型的类型

来自分类Dev

在模板函数中推导模板函数(使用C ++概念)

来自分类Dev

C ++ 03中的函数返回类型推导

来自分类Dev

模板类型推导在C ++中不起作用

来自分类Dev

C ++中转换函数模板参数推导的含义

来自分类Dev

函数的模板推导如何在C ++中工作?

来自分类Dev

看不懂C++11模板函数参数推导

来自分类Dev

模板参数推导C ++

来自分类Dev

模板参数推导C ++

来自分类Dev

具有模板模板参数的C ++函数失败模板参数推导/替换

来自分类Dev

非类型模板参数中的C ++类类型:推导指南失败

来自分类Dev

C ++-通过enable_if_t推导参数包(可变模板)构造函数和复制构造函数

来自分类Dev

函数指针类型的c ++模板调用

来自分类Dev

C ++类模板作为函数返回类型

来自分类Dev

自动推导其类型时,将C ++ 11枚举类作为模板传递

来自分类Dev

模板类型 != 推导类型

来自分类Dev

在C ++-17中,此构造函数是否可以提供模板推导指南?

来自分类Dev

函数模板中返回类型的模板参数推导

来自分类Dev

具有模板函数错误的C ++条件模板类型

来自分类Dev

具有模板函数错误的C ++条件模板类型

来自分类Dev

C ++模板函数根据模板参数返回类型

来自分类Dev

从迭代器推导值类型以获取模板函数的返回类型

来自分类Dev

从迭代器推导值类型以获取模板函数的返回类型

来自分类Dev

C ++推导嵌套异常的类型

Related 相关文章

  1. 1

    C ++模板函数类型推导

  2. 2

    在C ++中将函数作为模板类型传递并推导其类型

  3. 3

    C ++使用函数参数类型进行模板参数推导

  4. 4

    C ++函数类型模板参数推导规则

  5. 5

    C ++:将lambda作为带有模板参数的函数进行传递会使推导模板类型失败

  6. 6

    在C ++中推导模板类型的类型

  7. 7

    在模板函数中推导模板函数(使用C ++概念)

  8. 8

    C ++ 03中的函数返回类型推导

  9. 9

    模板类型推导在C ++中不起作用

  10. 10

    C ++中转换函数模板参数推导的含义

  11. 11

    函数的模板推导如何在C ++中工作?

  12. 12

    看不懂C++11模板函数参数推导

  13. 13

    模板参数推导C ++

  14. 14

    模板参数推导C ++

  15. 15

    具有模板模板参数的C ++函数失败模板参数推导/替换

  16. 16

    非类型模板参数中的C ++类类型:推导指南失败

  17. 17

    C ++-通过enable_if_t推导参数包(可变模板)构造函数和复制构造函数

  18. 18

    函数指针类型的c ++模板调用

  19. 19

    C ++类模板作为函数返回类型

  20. 20

    自动推导其类型时,将C ++ 11枚举类作为模板传递

  21. 21

    模板类型 != 推导类型

  22. 22

    在C ++-17中,此构造函数是否可以提供模板推导指南?

  23. 23

    函数模板中返回类型的模板参数推导

  24. 24

    具有模板函数错误的C ++条件模板类型

  25. 25

    具有模板函数错误的C ++条件模板类型

  26. 26

    C ++模板函数根据模板参数返回类型

  27. 27

    从迭代器推导值类型以获取模板函数的返回类型

  28. 28

    从迭代器推导值类型以获取模板函数的返回类型

  29. 29

    C ++推导嵌套异常的类型

热门标签

归档