简单模板不编译 - C ++

时间:2013-03-16 09:25:12

标签: c++ templates compiler-errors

我有以下相当简单的模板:

template< typename T >
struct compare {
  bool operator()( T a, T b ) { return a < b; }
};

template< typename T, typename Comp = compare< T > >
T min( T a, T b ) {                                  // line 22
  Comp comp;
  if( comp( a, b ) ) return a;
  return b;
}

template< typename T, typename Comp = compare< T > >
T max( T a, T b ) {                                  // line 29
  Comp comp;
  if( !comp( a, b ) ) return a;
  return b;
}

当我编译前面的代码时,我收到以下错误:

utility.h:22: error: default template arguments may not be used in function templates
utility.h:29: error: default template arguments may not be used in function templates

我之前写过很多像这样的模板,复杂得多,但这是我第一次遇到这个错误。我究竟做错了什么?提前谢谢。

0 个答案:

没有答案