数字常量之前的预期不合格 id
Posted
技术标签:
【中文标题】数字常量之前的预期不合格 id【英文标题】:expected unqualified-id before numeric constant 【发布时间】:2011-05-26 18:23:59 【问题描述】:template <int K>
class Wrap
// stuffs
;
如果我实例化像Wrap < 5>4 > p;
这样的模板有什么问题?
我得到 expected unqualified-id before numeric constant 错误。如何解决这个问题?
【问题讨论】:
【参考方案1】:将Wrap < 5>4 > p;
更改为Wrap < (5>4) > p;
遇到的第一个>
被视为模板参数列表的末尾而不是大于运算符>
ISO C++ [14.2/3]
解析template-id时,将第一个非嵌套的
>
作为模板的结尾 参数列表而不是大于运算符。
【讨论】:
【参考方案2】:如果我实例化像
Wrap < 5>4 > p;
这样的模板有什么问题?
只要看一下这句话就应该很明显:即使对人类来说,它也令人困惑!编译器无法处理这里>
的双重含义:它的意思是“大于”吗?这是否意味着“关闭模板参数列表”?原来,它的意思是both,编译器没有提示在哪里应用哪个含义。两者都是技术上有效的解析。
【讨论】:
【参考方案3】:模棱两可。请改用 Wrap4)>。
【讨论】:
以上是关于数字常量之前的预期不合格 id的主要内容,如果未能解决你的问题,请参考以下文章
遇到错误问题:''之前的预期不合格ID只是一个类的标题,我需要不确定是啥导致错误[关闭]
为什么我一直得到“错误:在'案件'之前预期不合格的身份'”?
引起:NoSuchBeanDefinitionException:没有 xxx 类型的合格 bean 预期至少 1 个 bean 有资格作为自动装配候选者