Proposed resolution (February, 2012): Change 9.5.2 [dcl.init.aggr] paragraph 11 as follows:
In a declaration of the form T x = { a }; braces Braces can be elided in an
initializer-list as follows. [Footnote: Braces
cannot be elided in other uses of list-initialization. —end
footnote]
Issue 1232 extended the language to allow
creation of array temporaries using initializer lists. However, such
initializer lists must be “completely braced;” the elision
of braces described in 9.5.2 [dcl.init.aggr] paragraph 11 applies
only In a declaration of the form This restriction prevents plausible uses like
T x = { a };
array<int, 3> f() {
return { 1, 2, 3 };
}