簡體   English   中英

數組和類聚合類型的統一初始化

[英]Uniform initialization for arrays and class aggregate types

n3526 proposes a slight relaxation of the rules for eliding braces from aggregate initialization in order to make initialization of arrays and class aggregates more uniform. 刪除 proposes a slight relaxation of the rules for eliding braces from aggregate initialization in order to make initialization of arrays and class aggregates more uniform.

它將允許以下代碼編譯:

struct S {
    int x[2][2];
};

struct A {
    S s;
};

// Then the following declarations are all equivalent

A a1 = {{{{1, 2}, {3, 4}}}};
A a2 = {{{1, 2}, {3, 4}}};
A a3 = {{1, 2}, {3, 4}};
A a4 = {1, 2, 3, 4};

然后它說:

考慮並拒絕允許對具有多個成員的聚合體進行括號省略,因為它似乎很難解析已經格式良好的程序。

有誰知道在使這種語法成為可能方面是否有任何進展,如果沒有,那么不允許它的原因是什么?

論文由布里斯托爾會議的進化工作組審議,結論是目前的限制是有意的。 我不是這次討論的一部分,因此對細節知之甚少。 似乎還注意到,即使提出的提案也可能改變現有的有效代碼,盡管沒有給出任何例子。 據我所知,該提案未被追究:

沒有建議繼續前進,被認為是NAD。

暫無
暫無

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

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