https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- It is on admin_commands = { { "sync trace show name=search,type=CephString,req=false", "sync trace show [filter_str]: show current multisite tracing information" }, { "sync trace history name=search,type=CephString,req=false", "sync trace history [filter_str]: show history of multisite tracing information" }, { "sync trace active name=search,type=CephString,req=false", "show active multisite sync entities information" }, { "sync trace active_short name=search,type=CephString,req=false", "show active multisite sync entities entries" } }; in int RGWSyncTraceManager::hook_to_admin_command(), where admin_commands is: std::list<std::array<std::string, 3> > admin_commands; Though, -std=c++20: #include <list> #include <vector> #include <string> #include <initializer_list> struct S { std::list<std::array<std::string, 3> > admin_commands; void foo (); }; void S::foo () { admin_commands = { { "sync trace show name=search,type=CephString,req=false", "sync trace show [filter_str]: show current multisite tracing information" }, { "sync trace history name=search,type=CephString,req=false", "sync trace history [filter_str]: show history of multisite tracing information" }, { "sync trace active name=search,type=CephString,req=false", "show active multisite sync entities information" }, { "sync trace active_short name=search,type=CephString,req=false", "show active multisite sync entities entries" } }; } is rejected with /tmp/1.C: In member function ‘void S::foo()’: /tmp/1.C:18:137: error: no match for ‘operator=’ (operand types are ‘std::__cxx11::list<std::array<std::__cxx11::basic_string<char>, 3> >’ and ‘<brace-enclosed initializer list>’) 18 | { "sync trace active_short name=search,type=CephString,req=false", "show active multisite sync entities entries" } }; | ^ In file included from /home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/list:66, from /tmp/1.C:1: /home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/bits/list.tcc:267:5: note: candidate: ‘std::__cxx11::list<_Tp, _Alloc>& std::__cxx11::list<_Tp, _Alloc>::operator=(const std::__cxx11::list<_Tp, _Alloc>&) [with _Tp = std::array<std::__cxx11::basic_string<char>, 3>; _Alloc = std::allocator<std::array<std::__cxx11::basic_string<char>, 3> >]’ 267 | list<_Tp, _Alloc>:: | ^~~~~~~~~~~~~~~~~ /home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/bits/list.tcc:268:27: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::__cxx11::list<std::array<std::__cxx11::basic_string<char>, 3> >&’ 268 | operator=(const list& __x) | ~~~~~~~~~~~~^~~ In file included from /home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/list:65: /home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/bits/stl_list.h:929:7: note: candidate: ‘std::__cxx11::list<_Tp, _Alloc>& std::__cxx11::list<_Tp, _Alloc>::operator=(std::__cxx11::list<_Tp, _Alloc>&&) [with _Tp = std::array<std::__cxx11::basic_string<char>, 3>; _Alloc = std::allocator<std::array<std::__cxx11::basic_string<char>, 3> >]’ 929 | operator=(list&& __x) | ^~~~~~~~ /home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/bits/stl_list.h:929:24: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::__cxx11::list<std::array<std::__cxx11::basic_string<char>, 3> >&&’ 929 | operator=(list&& __x) | ~~~~~~~^~~ /home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/bits/stl_list.h:947:7: note: candidate: ‘std::__cxx11::list<_Tp, _Alloc>& std::__cxx11::list<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = std::array<std::__cxx11::basic_string<char>, 3>; _Alloc = std::allocator<std::array<std::__cxx11::basic_string<char>, 3> >]’ 947 | operator=(initializer_list<value_type> __l) | ^~~~~~~~ /home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/bits/stl_list.h:947:46: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::initializer_list<std::array<std::__cxx11::basic_string<char>, 3> >’ 947 | operator=(initializer_list<value_type> __l) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~