Size: a a a

2021 March 01

CD

Constantine Drozdov in supapro.cxx
Anatoly Shirokov
int a = 0;
std::exchange(a, 10);

а так?
а если дискардить результат get это вообще каст к войду
источник

CD

Constantine Drozdov in supapro.cxx
будем геттеры нопами называть?
источник

AS

Anatoly Shirokov in supapro.cxx
Constantine Drozdov
а если дискардить результат get это вообще каст к войду
источник

AS

Anatoly Shirokov in supapro.cxx
что в описании написано?
источник

AS

Anatoly Shirokov in supapro.cxx
Replaces the value of obj with new_value and returns the old value of obj.
источник

AS

Anatoly Shirokov in supapro.cxx
так может быть все же не exchange?
источник

CD

Constantine Drozdov in supapro.cxx
Anatoly Shirokov
Replaces the value of obj with new_value and returns the old value of obj.
Да, именно это делает exchange, оно просто результат пишет не в аргумент функции, как swap, а в возвращаемое значение
источник

CD

Constantine Drozdov in supapro.cxx
Заметь, что в compare-exchange оказывается очень похожая история, desired передаётся по значению
https://en.cppreference.com/w/cpp/atomic/atomic/compare_exchange
источник

AS

Anatoly Shirokov in supapro.cxx
Constantine Drozdov
Да, именно это делает exchange, оно просто результат пишет не в аргумент функции, как swap, а в возвращаемое значение
источник

CD

Constantine Drozdov in supapro.cxx
pub fn compare_exchange(
   &self,
   current: i32,
   new: i32,
   success: Ordering,
   failure: Ordering
) -> Result<i32, i32>

ну вот тебе версия exchange из раста, если не веришь
источник

CD

Constantine Drozdov in supapro.cxx
то, что вы exchange обозвали set это ваши личные истории :)
источник

AS

Anatoly Shirokov in supapro.cxx
Constantine Drozdov
pub fn compare_exchange(
   &self,
   current: i32,
   new: i32,
   success: Ordering,
   failure: Ordering
) -> Result<i32, i32>

ну вот тебе версия exchange из раста, если не веришь
наркоманы
источник

AF

Aidar Fattakhov in supapro.cxx
Constantine Drozdov
pub fn compare_exchange(
   &self,
   current: i32,
   new: i32,
   success: Ordering,
   failure: Ordering
) -> Result<i32, i32>

ну вот тебе версия exchange из раста, если не веришь
Тут слово лишнее
источник

AF

Aidar Fattakhov in supapro.cxx
compare
источник

AF

Aidar Fattakhov in supapro.cxx
Constantine Drozdov
pub fn compare_exchange(
   &self,
   current: i32,
   new: i32,
   success: Ordering,
   failure: Ordering
) -> Result<i32, i32>

ну вот тебе версия exchange из раста, если не веришь
источник

В

Виктор in supapro.cxx
Я создаю QSharedMem, но иногда программа завершается не успевая сделать QSharedMem::detach().

Чтобы этого избежать - я засовываю QSharedMem внутрь класса class myMem, чтобы в деструкторе написать detach().

Однако не понимаю как сделать чтобы при обращении к объекту myMem фактическое обращение шло к внутреннему объекту QSharedMem. Это нужно чтобы передавать объект QSharedMem как аргумент, в другую функцию.
Верно ли я понимаю что копать нужно в сторону конструктора перемещения или есть более простой способ?
Если попутно решится вопрос доступа к методам QSharedMem, без прописывания их дубликатов внутри класса myMem - ещё лучше.
источник

AF

Aidar Fattakhov in supapro.cxx
Раст украл!
источник

AF

Aidar Fattakhov in supapro.cxx
Виктор
Я создаю QSharedMem, но иногда программа завершается не успевая сделать QSharedMem::detach().

Чтобы этого избежать - я засовываю QSharedMem внутрь класса class myMem, чтобы в деструкторе написать detach().

Однако не понимаю как сделать чтобы при обращении к объекту myMem фактическое обращение шло к внутреннему объекту QSharedMem. Это нужно чтобы передавать объект QSharedMem как аргумент, в другую функцию.
Верно ли я понимаю что копать нужно в сторону конструктора перемещения или есть более простой способ?
Если попутно решится вопрос доступа к методам QSharedMem, без прописывания их дубликатов внутри класса myMem - ещё лучше.
QSharedMem* operator->(){
return &mem;}
источник

В

Виктор in supapro.cxx
Aidar Fattakhov
QSharedMem* operator->(){
return &mem;}
в смысле перегрузка операторов класса?
источник

AF

Aidar Fattakhov in supapro.cxx
myMem->detach();)))))))
источник