Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比亚恩会犯错吗?(在解释模板时),还是我还是不明白? 各位,我正在从《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*/ } template//这里是一个默认参数 //但就我而言,在这个句子中使用默认参数是违法的 //函数模板 int比较(常量字符串和str1、常量字符串和str2) { /*一些代码*/ }_C++_Templates - Fatal编程技术网

比亚恩会犯错吗?(在解释模板时),还是我还是不明白? 各位,我正在从《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*/ } template//这里是一个默认参数 //但就我而言,在这个句子中使用默认参数是违法的 //函数模板 int比较(常量字符串和str1、常量字符串和str2) { /*一些代码*/ }

比亚恩会犯错吗?(在解释模板时),还是我还是不明白? 各位,我正在从《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*/ } template//这里是一个默认参数 //但就我而言,在这个句子中使用默认参数是违法的 //函数模板 int比较(常量字符串和str1、常量字符串和str2) { /*一些代码*/ },c++,templates,C++,Templates,所以我的问题是: 书中有错误吗?还是我弄错了?是的,在这种情况下,书是错的。在函数模板声明中使用默认模板参数确实是非法的 您可以在此处找到对该问题的引用经过编辑,删除了不必要的缩写和所有不必要的大写字母,以确保所有相关人员的理智。@Cogwheel来自当前标准。@Cogwheel:我从标准14.1/9中了解到这是非法的,“在函数模板声明或函数模板定义中不应指定默认模板参数”。对AJAX挥拳我在看到您的回答之前删除了我的评论…为了子孙后代,我问了“是什么让您认为这是非法的?”和FWIW,它们在C+

所以我的问题是:

书中有错误吗?还是我弄错了?

是的,在这种情况下,书是错的。在函数模板声明中使用默认模板参数确实是非法的


您可以在此处找到对该问题的引用

经过编辑,删除了不必要的缩写和所有不必要的大写字母,以确保所有相关人员的理智。@Cogwheel来自当前标准。@Cogwheel:我从标准14.1/9中了解到这是非法的,“在函数模板声明或函数模板定义中不应指定默认模板参数”。对AJAX挥拳我在看到您的回答之前删除了我的评论…为了子孙后代,我问了“是什么让您认为这是非法的?”和FWIW,它们在C++0x中是允许的。是的,这可能是链接页上的“投票在下一标准中更正”是指。