如何解决数值常数之前的预期unqualified-id
|template <int K>
class Wrap
{
// stuffs
};
如果将模板实例化为Wrap < 5>4 > p;
怎么了?
在数字常量错误之前,我得到了预期的unqualid-id。如何解决这个问题?
解决方法
如果我像ѭ1一样实例化模板怎么办?
仅通过查看以下语句就应该在直觉上显而易见:甚至对于人类来说也令人困惑!在这里,编译器无法应付
>
的双重含义:它的意思是“大于”吗?这是否意味着“关闭模板参数列表”?事实证明,这意味着两者兼而有之,并且编译器没有提示在何处应用哪种含义。两者都是技术上有效的解析。
,将Wrap < 5>4 > p;
更改为Wrap < (5>4) > p;
遇到的第一个“ 3”被当作模板参数列表的结尾,而不是大于运算符“ 3”
ISO C ++ [14.2 / 3]
解析模板ID时,将第一个非嵌套的>
作为模板的结尾
参数列表而不是大于运算符。
,含糊不清。请使用Wrap <(5> 4)>。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。