在C ++ 03中作为模板参数给出函数的Deduce参数

时间:2015-05-11 05:23:35

标签: templates c++03

我有以下代码,效果很好(http://ideone.com/cAS6qQ):

  int inc( const int& x) {
      return x+1;
  }

template< typename R, typename A, R fun( const A&)>
  struct From {
      void call() {
          cout << fun( 1);
      };
  };

...
    From< int, int, inc> f;  //I want to change it to more simple From< inc> f;
    f.call(); //returns 2
...

我试图简化我的代码,所以我可以像这样构建 From 类的对象:

...
   From< inc> f;
   f.call( 1); //returns 2
...

我认为它可以以某种方式完成,因为模板参数 R A 是从函数参数和返回类型中得知的。我不能将单个函数作为参数,因为在我的代码中它可以采用任何类型。

PS&GT;我使用的是C ++ 03,所以我没有很酷的功能。

0 个答案:

没有答案