https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Even better don't make second initializer_list member __rebind:
namespace std {
struct __new_allocator {};
template <typename> using __allocator_base = __new_allocator;
struct allocator : __allocator_base<int> {};
template <class> struct initializer_list {
void *_M_array;
decltype(sizeof 0) _M_len;
};
template <typename T>
struct basic_string {
basic_string(const T *, allocator = allocator());
~basic_string();
};
using string = basic_string<char>;
template <typename T>
struct array {
T _M_elems;
};
template <typename T>
struct list {
list &operator=(initializer_list<T>);
};
}
struct RGWSyncTraceManager {
std::list<std::array<std::string>> admin_commands;
void hook_to_admin_command();
};
void RGWSyncTraceManager::hook_to_admin_command() {
admin_commands = {{""}, {""}};
}