【发布时间】:2015-03-02 13:53:23
【问题描述】:
为什么不能在一个定义列表中定义 const 和 non-const 变量?
例如在使用for循环时:
for (size_t i = 0, const iCount = data.size(); i < iCount; ++i);
我猜从 const 正确性的角度来看会更好。
附:我第一次问错了这个问题。它更适合语言设计者,而不是“为什么可以在我的机器上编译?”。我想说的是,如果它在下一个 C++ 标准中作为语法糖来实现会更好。这也将防止在每次循环迭代中调用data.size()。我的意思是,为什么不扩展当前的 C++ 变量定义列表以支持单个定义列表中的 const 和 non-const?
【问题讨论】:
-
问题不在于
const(必然),而是两种不同的类型。 -
@w.b 好吧,我没这么说。我唯一想说的是“好吧,它是不同的类型,但为什么它可以是糖语法,例如在新标准中”?
-
您的问题是“为什么不可能......”而我的回答是“这是非法的 C++ 语法”。为什么 C++ 标准委员会决定这样做完全是另一个话题。
-
@Cyber:问题是
const,因为与其他一些修饰符不同,声明语法不允许您将其添加到单个声明符中。不一定禁止两种不同的类型:int i = 0, *p = &i;是一个完美的声明。
标签: c++ variables standards definition