Clang C++0x: uniform initializers status

Hi,

Because the status page is in a continuous state of outdatedness, what
is the current status of uniform initializers? This is an awesome
feature, and I would love to have it in Clang!

Ruben

Hi,

Because the status page is in a continuous state of outdatedness,

*sigh* This really isn't the case. We update this page when we feel a feature has hit a useful point.

what
is the current status of uniform initializers? This is an awesome
feature, and I would love to have it in Clang!

Unimplemented and not useful yet.

  - Doug

Because the status page is in a continuous state of outdatedness,

*sigh* This really isn't the case. We update this page when we feel a feature has hit a useful point.

Sorry about that - this comment was probably from my statement in the
thread about lambda support earlier today.

Given the granularity of the page (showing separate support for
parsing, sema, ast, codegen) it does often feel like it's a little out
of date because implementing one part of it doesn't seem like a
'useful point', I guess.

On the subject, then - what's the support for standard attribute
syntax? I've certainly seen some tests for that checked in (lambda
support hit some of these test cases) but the status page shows
nothing.

- David

Because the status page is in a continuous state of outdatedness,

*sigh* This really isn't the case. We update this page when we feel a feature has hit a useful point.

Sorry about that - this comment was probably from my statement in the
thread about lambda support earlier today.

Given the granularity of the page (showing separate support for
parsing, sema, ast, codegen) it does often feel like it's a little out
of date because implementing one part of it doesn't seem like a
'useful point', I guess.

No, it's not useful any more. This form of the C++ status page was useful back before we had C++98/03 implemented, before we had actual users. Now, we'd be far better off with just a list of C++0x features and a check next to each one that's been implemented.

Anyone who wants to help implement a feature without a checkbox will start poking in the code and will run across the partial implementation, at which point they can start asking the right questions to figure out what needs to be done and whom to talk to.

On the subject, then - what's the support for standard attribute
syntax? I've certainly seen some tests for that checked in (lambda
support hit some of these test cases) but the status page shows
nothing.

I don't believe it's complete. CC'ing Sean, who can tell us more.

  - Doug

It's been a while since I touched it. If I recall correctly, the
attribute parses in nearly every location (something tells me we're
missing them in enums; at some point uploading a test suite that
checks every point where an attribute-specifier can appear in the
grammar would be good). The actual application of attributes is quite
broken as it follows the GNU model. While this is "good enough" for
most applications, it's not conformant.

The only attributes actually supported, if I recall correctly, are
"alignas" and "noreturn", as other attributes were disabled with the
intent that we could think through their application and put them
inside attribute namespaces. "carries_dependency" might be parsed and
ignored (it occurs to me that perhaps the thread safety annotations
might be interested in this attribute? I'm not familiar with the C++0x
execution model enough to know if that's the case.

Sean

I've started some work on it, but it's tricky to implement and my first approach was ill-conceived and didn't work.

I got side-tracked by doing automatic generation of move special members (a fruit that hangs far lower on the tree), but I will continue with initializers once that's done.

Sebastian