Несколько причин, по которым std::initializer_list может быть полезным при разработке современных приложений:
- Возможность хранить списки инициализации как standalone-объекты. 1 Для этого предназначен шаблонный класс std::initializer_list, который принимает один шаблонный параметр — тип значений, которые будут храниться в списке. 1
- Возможность пересылать аргументы от одного конструктора к другому. 1 Например, так можно инициализировать пользовательский контейнер, который принимает список начальных значений. 1
- Лёгкость и быстрота копирования. 1 Поэтому std::initializer_list обычно передают по значению, а не по ссылке. 1
- Преимущество при вызове конструктора. 4 Во время вызова конструктор с std::initializer_list имеет приоритет над другими перегрузками конструктора. 4