http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47453
__vic <d.v.a at ngs dot ru> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |d.v.a at ngs dot ru --- Comment #4 from __vic <d.v.a at ngs dot ru> 2011-07-29 06:08:29 UTC --- struct A { int a[2]; A():a({1, 2}) { } }; Should be valid. Example: class cond_variable { ::pthread_cond_t cond; public: constexpr cond_variable() : cond(PTHREAD_COND_INITIALIZER) {} }; What is pthread_cond_t? Struct? Array? Scalar? How I can be sure this code is accepted in any case? Uniform initialization initially address this issue. Out of constructor one can use "=": ::pthread_cond_t cond = PTHREAD_COND_INITIALIZER; In constructor init-list "=" is prohibited therefore "()" must play a same role.