Size: a a a

2021 March 01

AS

Anatoly Shirokov in supapro.cxx
Constantine Drozdov
template <typename T>
void safe_delete(T*& ptr) {
  delete std::exchange(ptr, nullptr);
}
к слову, неудачное название функции, которая по сути выполняет assign, а не exchange
источник

CD

Constantine Drozdov in supapro.cxx
Anatoly Shirokov
к слову, неудачное название функции, которая по сути выполняет assign, а не exchange
Она же возвращает старое значение, а не assign
источник

CD

Constantine Drozdov in supapro.cxx
assign новое возвращает
источник

AS

Anatoly Shirokov in supapro.cxx
Constantine Drozdov
Она же возвращает старое значение, а не assign
повторю, что семантика у exchange обычного setter-a, что здесь с чем обменивается?
источник

CD

Constantine Drozdov in supapro.cxx
Anatoly Shirokov
повторю, что семантика у exchange обычного setter-a, что здесь с чем обменивается?
у тебя обычные сеттеры возвращают старое значение?
источник

AS

Anatoly Shirokov in supapro.cxx
Constantine Drozdov
у тебя обычные сеттеры возвращают старое значение?
до какой-то поры да
источник

AS

Anatoly Shirokov in supapro.cxx
сейчас void
источник

CD

Constantine Drozdov in supapro.cxx
обменивается значение переменной с аргументом
источник

AS

Anatoly Shirokov in supapro.cxx
Constantine Drozdov
обменивается значение переменной с аргументом
сова кричит от того, что ты натягиваешь ее на глобус
источник

AS

Anatoly Shirokov in supapro.cxx
нет здесь exchange
источник

CD

Constantine Drozdov in supapro.cxx
Anatoly Shirokov
сова кричит от того, что ты натягиваешь ее на глобус
найди мне хоть один метод assign, который вернёт старое значение
источник

AS

Anatoly Shirokov in supapro.cxx
Constantine Drozdov
найди мне хоть один метод assign, который вернёт старое значение
мы практиковали это у себя
источник

CD

Constantine Drozdov in supapro.cxx
Anatoly Shirokov
мы практиковали это у себя
x.set(&x_t::a, 2).set(&x_t::b, 3)
источник

CD

Constantine Drozdov in supapro.cxx
вот вглядись, ты правда воспримешь это как будто второй set относится к x_t::a или старому x
источник

AS

Anatoly Shirokov in supapro.cxx
Constantine Drozdov
x.set(&x_t::a, 2).set(&x_t::b, 3)
int a = 0;
int old = std::exchange(a, 10);
что здесь меняется и c чем?
источник

CD

Constantine Drozdov in supapro.cxx
Anatoly Shirokov
int a = 0;
int old = std::exchange(a, 10);
что здесь меняется и c чем?
int a = 0;
int old = 10;
std::swap(a, old);
источник

AS

Anatoly Shirokov in supapro.cxx
Constantine Drozdov
int a = 0;
int old = 10;
std::swap(a, old);
а если уберем old?
источник

CD

Constantine Drozdov in supapro.cxx
Anatoly Shirokov
а если уберем old?
std::swap(a, 10); очень подозрительный код
источник

AS

Anatoly Shirokov in supapro.cxx
Constantine Drozdov
std::swap(a, 10); очень подозрительный код
int a = 0;
std::exchange(a, 10);

а так?
источник

AS

Anatoly Shirokov in supapro.cxx
не подозрительный?
источник