(моё понимание такое, могу быть не прав). seq_cst - для чтения/записи гарантирует то же что и acquire/release + дополнительные гарантии того что seq_cst доступ не переупорядот...
у вас же тут всё течёт (?), поставте ассерт в деструкторе: const std::size_t removed = commandPools.erase(this); assert(removed > 0); это то о чём говорил SO ответ: > The cat...
Меня смущает аргумент что "noexcept тянет за собой noexcept - и это плохо". Также можно сказать и про отсутствие noexcept на ф-и. Если писать exception-safe код - приходится д...
и, раз у вас на каждый поток есть своих N инстансов А (уже), зачем что-то городить для B ? Можно ли просто ограничиться и не передавать экземпляр А из одного потока в другой ?...
можно "запихать" в .dll. Наверное имеется в виду явная инстанциация шаблонов (экспорт, который никем не был реализован). > все эти пироги и экспортить их в длл только с теми ...
и.. зафейлите компиляцию, ведь так ? То есть, возможно тут больше вопрос в том что вы хотите более читаемые/вменяемые ошибки компиляции ? я к тому что как wellformed так и б...
мне, все же, кажется, вы подхватываете другой хедер. Раз вы уже патчите сорцы - можете удалить хедер после распаковки, например ? Если скомпилится, подхватился другой. Ещё мож...
с CTAD и другими предположениями, разве нельзя сделать что-то типа foo(::qwe::MyTemplateClass(v)) ?
я так понимаю, уже разобрались что вы имели в виду std::async ? А смотреть на пример можно здесь: https://github.com/toby-allsopp/coroutine_monad/blob/master/test_optional.cpp...
колличество потоков известно, ограничено ? Вы их менеджите ?
какие лишние потоки ? о чем вы говорите ? Я совсем запутался. Мы говорим о том как работает cо_await или о каком-то конкретном примере ? О реализации co_await для std::future ...
А почему нет ? CTAD определён вокруг primary class template и синтаксис - вокруг template-name. Или что вы имеете в виду ? Я про: http://eel.is/c++draft/over.match.class.deduc...
> Scope A включает в себя создание и джойн дочерних потоков в главном потоке. хм, а у вас A, случайно, не менеджит эти потоки ?
почему ? x86 подразумевает release/acquire. К примеру, вот ARM: https://godbolt.org/z/y2uJXk если я правильно понял, Max прав
Звучит не понятно. А можно конкретный код с конкретными примерами как оно у вас сейчас ?)
так, навскидку, thread.join()/detach() вызывается ? Деструктор как раз вызывает терминейт, если этого не сделать
Все же странная формулировка. Есть пример того что значит "поток для co_await"?
оо, интересно посмотреть живые примеры. Есть на гитхабе ?)
так автор пропозала же сдался ?
сложно представить практичный пример ?