Size: a a a

2020 October 03

M

Mikhail in pro.cxx
Всем привет! А кто нибудь замарачивался преобразованием boost system_error в std::error_code?
источник
2020 October 04

АР

Андрей Руссков... in pro.cxx
а разве в последних версиях буста это не одно и то же?
источник

M

Mikhail in pro.cxx
Андрей Руссков
а разве в последних версиях буста это не одно и то же?
Не знаю, типы разные же.
источник

АР

Андрей Руссков... in pro.cxx
ну ты посмотри не является ли boost::system_error alias'ом на std::error_code
источник

АР

Андрей Руссков... in pro.cxx
или возможно нужен какой-то флажок компиляции чтобы являлся
источник

M

Mikhail in pro.cxx
Не является, но вот сейчас заглянул в код и увидел следующее:
 operator std::error_code () const
   {
       return std::error_code( value(), category() );
   }
источник

M

Mikhail in pro.cxx
Т.е. можно просто напрямую приравнять )
источник

M

Mikhail in pro.cxx
Круто, спасибо! )
источник

АР

Андрей Руссков... in pro.cxx
co_return применяет неявно std::move по аналогии с обычным return?
источник

m

magras in pro.cxx
Андрей Руссков
co_return применяет неявно std::move по аналогии с обычным return?
Нет, но он там и не нужен, так как co_return это просто вызов p.return_­value(expr);.
https://eel.is/c++draft/stmt.return.coroutine#2
источник

АР

Андрей Руссков... in pro.cxx
простой пример:
std::unique_ptr p;
co_return p;
источник

АР

Андрей Руссков... in pro.cxx
выполнить p.return_value(expr) для expr = p не получится, т.к. это lvalue
источник

АР

Андрей Руссков... in pro.cxx
вот в gcc например добавляется неявный std::move
источник

АР

Андрей Руссков... in pro.cxx
вопрос в том, что думает по этому поводу стандарт
источник

m

magras in pro.cxx
Мне кажется gcc не прав, так как:
> A co_­return statement is equivalent to:  { p.return_­value(expr-or-braced-init-list); goto final-suspend; }
источник

m

magras in pro.cxx
Андрей Руссков
вот в gcc например добавляется неявный std::move
А как выглядит код промиса?
Формально он может брать обычный рефернс и мувать из него.
источник

АР

Андрей Руссков... in pro.cxx
источник

AT

Alexander Tulikov in pro.cxx
Андрей Руссков
co_return применяет неявно std::move по аналогии с обычным return?
Работает так же как и return http://eel.is/c++draft/class.copy.elision#3
источник

АР

Андрей Руссков... in pro.cxx
Alexander Tulikov
Работает так же как и return http://eel.is/c++draft/class.copy.elision#3
источник

Д

Дмитрий (Invest) ☑️... in pro.cxx
Поможете?
источник