模板参数推导

原创 2004年10月25日 20:35:00

看下面一段代码:
   
     template<typename ReturnValue_t>
     struct FuncPtrTraits
     {
       typedef  ReturnValue_t (*Type)(int,int);
     };

     template<typename ReturnValue_t>
     void MakeFuncPtr(typename FuncPtrTraits<ReturnValue_t>::Type arg1)
     {
       //do something
     };

     int test(int x,int y)
     {
       return (x + y);
     };

     int main()
     {
       MakeFuncPtr(test);
       return 0;
     };
    用VC.NET编译上面这段代码会出错:C2783,“declaration”: 未能推导出“identifier”的模板参数。
    我想要让编译器能推导出函数模板的模板参数,必须在函数的参数类型声明中直接使用模板参数,我所谓的直接使用,是指用来推导模板参数的函数参数类型定义不应该再使用某个类模板中的嵌套类型定义。如果象以上那样间接的使用,不够聪明的编译器就无能为力了。

模板参数自动推导

上次,我们看了什么是
  • yincheng01
  • yincheng01
  • 2014年07月11日 12:54
  • 2277

C++——函数模板的参数推导

 在写作泛型函数或代码时,我们可能存在这样的需要:与参数相关的其它类型,比如一个迭代器的值的类型。本文要向大家展示一个函数模板推导机制使用技法,这个在STL的许多排序算法中广泛使用,当然大家也可能在不...
  • shineHoo
  • shineHoo
  • 2010年07月09日 09:16
  • 4165

c++模板参数自动推导

上次,我们看了什么是模板函数,今天,我们就从这个模板函数入手,继而引出一个新的知识点-模板参数自动推导。为了介绍清楚什么是模板参数自动推导,我们先定义几个术语,通过这些术语来描述比较方便,这些术语是:...
  • u010956473
  • u010956473
  • 2017年06月21日 09:12
  • 594

函数模板参数推导的两个经典应用

1.       推导数组参数。【可以分别推导出“元素类型”和“数组长度”】 // 模板函数定义 templateint bound, typename T> void f1( T (&a...
  • feihuadao
  • feihuadao
  • 2014年03月03日 11:10
  • 1122

c++11 条款1:理解模板类型推导

前言 c++98有单独一套类型推导规则:适用用函数模板。c++11修改了这套规则并且增加了两个,一个是auto,一个是decltype。c++14扩展了auto和decltype使用的场景。随着类型推...
  • coolmeme
  • coolmeme
  • 2015年03月03日 15:17
  • 7206

带有模板参数的函数指针

如果能定义一个带有模板参数的函数指针,例如:template void (*pf)(T);它就可以指向任何一个带有一个任何类型参数的函数了。但这种语法不被编译器支持。可以把这种类型的指针作为一个普通...
  • jcwKyl
  • jcwKyl
  • 2009年01月14日 17:35
  • 4127

模板参数 自变量推导

一、基本概念 Function templates 有两种参数:  1. Template parameters(模板参数),在function template 名称前的一对角(尖)括号中声明:...
  • wangdamingll
  • wangdamingll
  • 2017年01月03日 11:46
  • 133

未能推导模板参数(errorC2783)

使用模板函数时有一个原则: 模板参数推导机制无法推导函数返回值。 template T* GetInputData(); template VOID SetInputData(T t); I...
  • karlxzy
  • karlxzy
  • 2014年12月05日 14:05
  • 261

STL map<string,string> 未能从“const std::string”为“const std::_Revranit<_RanIt,_Base> &”推导 模板 参数

虽然老是犯错。其实解决方法xinx
  • haifengzhilian
  • haifengzhilian
  • 2014年04月17日 11:26
  • 3002

C++11 引用叠加规则和模板参数类型推导规则

C++11 引用叠加规则和模板参数类型推导规则
  • ggz631047367
  • ggz631047367
  • 2015年09月05日 11:04
  • 960
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模板参数推导
举报原因:
原因补充:

(最多只允许输入30个字)