Инициализация списка boost::asio::io_context

Я смотрю на пример из boost::beast и вижу, что они инициализируют свой io_context следующим образом:

// The io_context is required for all I/O
net::io_context ioc{threads};

Думал опечатка, но компилируется. Поэтому я начал гуглить, зная, что, вероятно, не наткнулся на какую-то новую функцию в C++ 11, 14 или 17.

Google говорит мне, что это инициализация списка. Однако я не понимаю, в чем преимущество такой инициализации, а не:

// The io_context is required for all I/O
net::io_context ioc(threads);

https://www.boost.org/doc/libs/develop/libs/beast/example/websocket/server/async/websocket_server_async.cpp

Насколько я могу судить, io_context имеет два конструктора; конструктор по умолчанию и тот, который принимает аргумент int. Аргумент int не инициализирует поле const.


person Christopher Pisz    schedule 30.04.2020    source источник
comment
В этом контексте она известна не как инициализация списка, а как универсальная инициализация. Полный обзор преимуществ и недостатков см. в этом ответе: softwareengineering.stackexchange.com/a/133690   -  person Azam Bham    schedule 30.04.2020
comment
Спасибо Азам. Я прочитал это и не смог точно определить преимущество здесь. Это просто, чтобы избежать сужения? Или, может быть, давайте использовать этот тип инициализации всякий раз, когда мы можем ввести что-то? Сейчас предпочтительно, чтобы я инициализировал свои классы таким образом?   -  person Christopher Pisz    schedule 30.04.2020
comment
Там много споров. Общей темой является то, что юниформ-инициализация имеет серьезные недостатки из-за взаимодействия с initializer_list. Однако вы назвали некоторые преимущества, и лично я считаю, что это соответствует синтаксису агрегатной инициализации. Однако см., например, twitter.com/lefticus/status/1253001045958987777   -  person sehe    schedule 30.04.2020
comment
В таком случае это будет еще один из тех вопросов стиля и предпочтений, которые мы обсуждаем с нашей командой, а? Если нет четких преимуществ, которые любой может указать.   -  person Christopher Pisz    schedule 30.04.2020