/
githubmirror
/
omim
Обзор
Документация
Войти
/
githubmirror
/
omim
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
base/atomic_shared_ptr.hpp
27 строк
605 B
Arsentiy Milchakov
[eye + tips] review fixes
30 авг 2018, 13:09
30 авг 2018, 13:09
4026ad8
Код
Авторство
О чём код?
#pragma once #include "base/macros.hpp" #include <memory> namespace base { // Template which provides methods for concurrently using shared pointers. template <typename T> class AtomicSharedPtr final { public: using ContentType = T const; using ValueType = std::shared_ptr<ContentType>; AtomicSharedPtr() = default; void Set(ValueType value) noexcept { atomic_store(&m_wrapped, value); } ValueType Get() const noexcept { return atomic_load(&m_wrapped); } private: ValueType m_wrapped = std::make_shared<ContentType>(); DISALLOW_COPY_AND_MOVE(AtomicSharedPtr); }; } // namespace base