Size: a a a

2020 August 24

D

Danya in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Подскажите, есть ли какая-то разница между этими конструкторами?
Ctor() {}
Ctor() = default;
Первый как минимум не noexcept
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Это вся разница?
источник

D

Danya in supapro.cxx
Второй будет noexcept, если инициализация всех членов класса noexcept
источник

D

Danya in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Это вся разница?
> как минимум
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Я могу тогда написать Ctor() noexcept {}
источник

D

Danya in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Я могу тогда написать Ctor() noexcept {}
А можешь писать = default, и никогда не забудешь этого
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Danya
> как минимум
А как максимум? :)
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Мне интересно, в чём ещё отличия есть.
источник

Е

Егор in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
А как максимум? :)
по идее первый тип не агрегат
источник

Е

Егор in supapro.cxx
и не уверен что он trivially_constructible
источник

D

Danya in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Я могу тогда написать Ctor() noexcept {}
К тому же скорее всего это всегда нетривиальный конструктор, а default может быть тривиальным, если все члены тривиальные
источник

D

Danya in supapro.cxx
Всегда пиши = default
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Егор
по идее первый тип не агрегат
Это как понимать?
источник

Е

Егор in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Это как понимать?
источник

D

Danya in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Это как понимать?
источник

Е

Егор in supapro.cxx
некоторые места могут сломаться или оптимизации пропасть из-за конструктора №1
источник

Е

Егор in supapro.cxx
magic_get не сработает например
источник

hh

horse horssyyy in supapro.cxx
Я где-то читал что писать конструктор нало только если он делает что-то большее чем просто инициализация переменных
источник

hh

horse horssyyy in supapro.cxx
В остальном компилятор имеет больше шансов что-то оптимизировать
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Короче, я не могу написать
Class x { 1,2,3 };
источник