伙计们,我正在做“第三版C ++编程语言”的练习。第340页上有一个函数示例:
template <class T, class C = Cmp<T> > // Here is a default argument
// But as far as I'm concerned it's illegal to have a default argument in
// a function template
int compare (const String<T>& str1, const String<T>& str2)
{
/*Some code*/
}
所以我的问题是:
书中有错误或者我错了吗?
答案 0 :(得分:9)
是的,在这种情况下,这本书是错误的。在函数模板声明中使用默认模板参数确实是非法的。
找到该问题的引用