簡體   English   中英

是否可以在C ++ 0x中使用auto執行以下操作?

[英]Is it possible to do the following with auto in C++0x?

Eric Lippert寫了一篇關於為什么沒有字段變化的文章 在C#中。 我很好奇,我們能用C ++ 0x做到嗎? 恩。

struct mystruct_t
{
   auto i = 0, d = 0.0, s = std::string("zero");
};

抱歉,我無法通過最新的草案得到答案。

謝謝,

可悲的是,你做不到。 該規范在7.1.6.4/3處說明如下

否則,從其初始化程序推導出變量的類型。 聲明的變量的名稱不應出現在初始化表達式中。 在塊(6.3),命名空間范圍(3.3.6)和for-init-statement(6.5.3)中聲明變量時,允許使用auto。

auto-type-specifier也可用於在選擇語句(6.4)或迭代語句(6.5)的條件中聲明變量,在new-type-id或type-id中的type-speci-seq中。 new-expression(5.3.4),在for-range-declaration中,並聲明一個靜態數據成員,其具有在類定義的成員規范中出現的大括號或等於初始值(9.4.2) 。

在本節未明確允許的上下文中使用auto的程序是不正確的。

我不確定為什么他們禁止auto為非靜態數據成員,這將是非常方便的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM