noexcept из-за того, что я надеюсь, что мьютекс будет браться всегда. Если он хоть когда-то выбросит експшн в noexcept, то программа закроется - это меня устраивает. А про гонку не понял, все под мутексами же. Мутеккс на запись и чтение
noexcept из-за того, что я надеюсь, что мьютекс будет браться всегда. Если он хоть когда-то выбросит експшн в noexcept, то программа закроется - это меня устраивает. А про гонку не понял, все под мутексами же. Мутеккс на запись и чтение
noexcept тут с натяжкой можно сделать только empty и size. С натяжкой, потому что в этом нет смысла, минусов больше. А когда ты сделаешь их правильно и потокобезопасно, то и их нельзя будет делать
noexcept тут с натяжкой можно сделать только empty и size. С натяжкой, потому что в этом нет смысла, минусов больше. А когда ты сделаешь их правильно и потокобезопасно, то и их нельзя будет делать
Хочешь расскажу страшную историю?) Исключения до сих пор нормально есть не на всех платформах и noexcept позволяет жто быстро ловить
Я понял про noexcept,спасибо) Но я, честно, не понимаю где гонка данных в empty, push и size :(
Представь что я вызову push и size из разных потоков. Поток 1 сделает size_++; поток 2 сделает return size_; Одновременное чтение и запись из разных потоков это data race, в С++ это UB