Eric Lippert在C#中撰写了一篇关于Why no var on fields?的文章。我很好奇,我们能用C ++ 0x做到吗?离。
struct mystruct_t
{
auto i = 0, d = 0.0, s = std::string("zero");
};
我无法通过最新的草稿得到答案,抱歉。
谢谢,
答案 0 :(得分:12)
否则,变量的类型是从其初始化程序推导出来的。声明的变量的名称不应出现在初始化表达式中。在块(6.3),命名空间范围(3.3.6)和for-init-statement(6.5.3)中声明变量时,允许使用auto。
auto-type-specifier也可用于在选择语句(6.4)或迭代语句(6.5)的条件中声明变量,在new-type-id或type中的type-speci-seq中-id of new-expression(5.3.4),for-range-declaration,以及声明一个静态数据成员,其具有在类定义的成员规范中出现的大括号或等于初始值(9.4) 0.2)。
在本节未明确允许的上下文中使用auto的程序格式不正确。
我不确定为什么他们禁止auto
非静态数据成员,这将非常方便。