https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66476
Ed Catmur <ed at catmur dot uk> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|INVALID |---
--- Comment #2 from Ed Catmur <ed at catmur dot uk> ---
Yes... but the initializer_list that the array backs is itself temporary; it
has lifetime only for the duration of the call to the copy constructor.
From https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48562#c6 :
> I think that a warning against "({...})" would be useful too
> // fine
> initializer_list<int> a{1, 2, 3};
> // this is bad
> initializer_list<int> b({1, 2, 3});
> Second one is bad because it will destroy the array after initializing 'b',
> and won't lengthen the lifetime (because it will use the copy/move
> constructor).