https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56568
--- Comment #3 from fuzzyTew at gmail dot com --- The definition of initializer_list is that the array backing it contains copies of the listed values and has the same lifetime as the list itself. If the return value is bound into the object assigned to it, the backing array should stick around as long as the return value does.