Какой тип у выражения с фигурными скобками?
У литерала 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}); уже не компилируется.