【发布时间】:2023-04-01 23:18:01
【问题描述】:
在 C++ 中,如果我写成a < b > c,其含义可以是表达式语句(a < b) > c,也可以是a<b> 类型的变量c 的声明。
为什么这在java中不是问题? (a < b) > c 选项是否被泛型淘汰了,因为尽管它可以解析,但它总是以类型错误告终? C++ 是否坚持保留此选项以实现向后兼容性?
【问题讨论】:
-
意思是可以是,但具体的问题是什么?如果编译器可以告诉
a是一个模板,它工作正常 -
即使编译了,
a < b > c也不会像它看起来那样工作。 -
@RustyX - 在我看来,如果 a 小于 b,则有人想将 c 与 1 进行比较,如果不是,则将其与 0 进行比较;)
-
因为 Java 没有模板 var decls。
-
@tohava:我真傻。我要去official Java language specification。显然,一些随机的在线黑客更权威。
标签: java c++ parsing syntax compiler-construction