170 похожих чатов

Поясните дураку (мне) В чем здесь нахрен отличие? eve::wide<float> x1{4}; eve::wide<float> x2(4);

8 ответов

7 просмотров

а как оно проявляется? Вообще {} проверяют сужающее преобразование

Разные виды инициализации

Александр- Автор вопроса

Не, я понимаю что разные виды, а в чем отличие?

c круглыми скобками, кстати, это объявление функции ведь, а не инициализация?

Александр
Не, я понимаю что разные виды, а в чем отличие?

{} имеет следующие отличия: 1) {} можно применять везде. В том числе и в указании дефолтных значений полей, инициализации статик полей и обычной инициализации 2) {} может использовать конструктор от std::initializer_list с значениями, указанными внутри {}. Яркий пример - std::vector. Это, впрочем, и плюс и минус. 3) {} не допускает применение операторов приведения типа при конструирования типа. То есть, если тип A имеет оператор каста в B, то при () произойдет каст, при {} не скомпилится 4) {} допускает вызов от пустых скобок, в отличии от (), так как () воспринимается компилятором как объявление функции

Александр
Понял, спасибо

Ну ещё с С++20 есть инициализация по полям агрегатных типов, она возможна только с {}

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Карта сайта