Size: a a a

2021 March 06

VG

Vladislav Gordievski... in pro.cxx
Да мне интересно было как быстро увидят проблему - это вопрос с собеса - значит такие проблемы есть (не видят программисты)
источник

VG

Vladislav Gordievski... in pro.cxx
Я этот вопрос задал в 4 местах - пока только тут ответили)
источник

EM

Evgeniy Mashyanov in pro.cxx
Ты слишком абстрактно ставишь вопрос) можно отвечать от архитектуры вплоть до выбора с++
источник

VG

Vladislav Gordievski... in pro.cxx
ну тут не абстрактно - есть код и внем есть изян
источник

VG

Vladislav Gordievski... in pro.cxx
если этот код будет испольнять много раз (будетнагрузка на сервак) - что далеть?
источник

VG

Vladislav Gordievski... in pro.cxx
кончено профайлер в помощь)
источник

VG

Vladislav Gordievski... in pro.cxx
но мы же о С++ говорим
источник

EM

Evgeniy Mashyanov in pro.cxx
И что, интринсики использовать?
источник

VG

Vladislav Gordievski... in pro.cxx
Тут достаточно понимать что у тебя будет вызвано - RVO, copy или move
источник

EM

Evgeniy Mashyanov in pro.cxx
Полумеры какие-то, мы же про с++ говорим)
источник

VG

Vladislav Gordievski... in pro.cxx
ну какие полумеры - там где не надо думать об этом - это JS и другая компания managed языков
источник

VG

Vladislav Gordievski... in pro.cxx
Просто огда твое ПО управляет судном например в тихом океане (и это лайнер с пассажирами) - это одна история
источник

VG

Vladislav Gordievski... in pro.cxx
или счетчик кликов рекламы
источник

VG

Vladislav Gordievski... in pro.cxx
где можно не думать об этом)
источник

LA

Liber Azerate in pro.cxx
Liber Azerate
Ладно, тогда у меня вопросов нет
Что-то у меня снова появились вопросы. Да, с двумя преобразованиями понятно, почему нельзя сделать один lvalue-to-rvalue conversion и прибиндить значение к явно более подходящей перегрузке?
источник

LA

Liber Azerate in pro.cxx
Я подумал, что из-за того, что тогда мог бы быть нежелательный имплисит мув, однако данные пункты явно говорят, что по сути будет prvalue-копия:
https://eel.is/c++draft/conv.lval#3
источник

LA

Liber Azerate in pro.cxx
Собственно, если что, сперва прочтите это(ответ пока не найден):
https://t.me/cpprussia/41052
источник

LA

Liber Azerate in pro.cxx
Liber Azerate
Собственно, если что, сперва прочтите это(ответ пока не найден):
https://t.me/cpprussia/41052
http://eel.is/c++draft/dcl.init.ref#5.4.4
У меня нет слов, чтобы это выразить.
источник

O

Ofee in pro.cxx
Liber Azerate
Собственно, если что, сперва прочтите это(ответ пока не найден):
https://t.me/cpprussia/41052
Обсудили во флудилке, в этом сообщении возникло непонимание дизайна rvalue-ref:

float f = 42.0f;
int   i = 42;
void fn(float&&);

fn(i);
// materializes temp prvalue float from int
fn(f);
// doesn't materialize temp prvalue float from float

Возможно, кто-то сумеет лучше, чем я мотивировать, почему мы не хотим в последней строчке делать лишнюю копию и нуждаемся в ошибке вместо молчаливого копирования
источник

VS

Vlad Serebrennikov in pro.cxx
Ofee
Обсудили во флудилке, в этом сообщении возникло непонимание дизайна rvalue-ref:

float f = 42.0f;
int   i = 42;
void fn(float&&);

fn(i);
// materializes temp prvalue float from int
fn(f);
// doesn't materialize temp prvalue float from float

Возможно, кто-то сумеет лучше, чем я мотивировать, почему мы не хотим в последней строчке делать лишнюю копию и нуждаемся в ошибке вместо молчаливого копирования
не потому ли, что && аргумент имеет семантику передачи владения, а в случае с f этим объектов уже владеет вызывающая сторона? создание копии тоже не соответствует этой семантике, потому что объектов станет два. ошибка заставляет сделать явный вызов std::move
источник