https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48562
--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Florian Weimer from comment #8) > Almost any std::initializer_list object will be a temporary, after all, and > the called function should move the initializer elements, not copy them. std::initializer_list only gives const access to its elements, so you can't move from them.