Какой тип у выражения с фигурными скобками?

У литерала 42 тип int, у "42" - const char [3]. А какой тип у чего-то в фигурных скобках? Например, какой тип у {1, 2, 3}?


Ответы (1 шт):

Автор решения: HolyBlackCat

У него нет типа, и в этом смысле его неправильно называть выражением.

В какой тип его преобразовывать - компилятор понимает из контекста.

Если написать auto x = {1,2,3}, то тип определится как std::initializer_list<int>, но это не значит, что это "родной" тип скобок. Потому что, например, template <typename T> void foo(T); foo({1,2,3}); уже не компилируется.

→ Ссылка