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

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

8 ответов

28 просмотров

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

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

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

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

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

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта