SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
NotMovableSharedPtr.h
Go to the documentation of this file.
1 /*
2  * SWC-DB© Copyright since 2019 Alex Kashirin <kashirin.alex@gmail.com>
3 */
4 
5 #ifndef swcdb_core_NotMovableSharedPtr_h
6 #define swcdb_core_NotMovableSharedPtr_h
7 
8 
9 namespace SWC { namespace Core {
10 
11 
12 template<class T>
13 class NotMovableSharedPtr : public std::shared_ptr<T> {
14  public:
15 
16  constexpr SWC_CAN_INLINE
17  NotMovableSharedPtr() noexcept { }
18 
20  NotMovableSharedPtr(T* other) noexcept : std::shared_ptr<T>(other) { }
21 
23  NotMovableSharedPtr(const std::shared_ptr<T>& other) noexcept
24  : std::shared_ptr<T>(other) {
25  }
26 
27  NotMovableSharedPtr(const NotMovableSharedPtr&) noexcept = default;
28 
30  NotMovableSharedPtr<T>& operator=(NotMovableSharedPtr&&) noexcept = delete;
31  NotMovableSharedPtr<T>& operator=(const NotMovableSharedPtr&) = delete;
32 
33  NotMovableSharedPtr(std::shared_ptr<T>&&) noexcept = delete;
34  NotMovableSharedPtr<T>& operator=(std::shared_ptr<T>&&) noexcept = delete;
35 
36  ~NotMovableSharedPtr() noexcept { }
37 };
38 
39 
40 }}
41 
42 #endif // swcdb_core_NotMovableSharedPtr_h
SWC::Core::NotMovableSharedPtr::NotMovableSharedPtr
SWC_CAN_INLINE NotMovableSharedPtr(const std::shared_ptr< T > &other) noexcept
Definition: NotMovableSharedPtr.h:23
SWC::Core::NotMovableSharedPtr::NotMovableSharedPtr
constexpr SWC_CAN_INLINE NotMovableSharedPtr() noexcept
Definition: NotMovableSharedPtr.h:17
SWC::Core::NotMovableSharedPtr::NotMovableSharedPtr
SWC_CAN_INLINE NotMovableSharedPtr(T *other) noexcept
Definition: NotMovableSharedPtr.h:20
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Core::NotMovableSharedPtr::NotMovableSharedPtr
NotMovableSharedPtr(NotMovableSharedPtr &&) noexcept=delete
SWC::Core::NotMovableSharedPtr::NotMovableSharedPtr
NotMovableSharedPtr(const NotMovableSharedPtr &) noexcept=default
SWC::Core::NotMovableSharedPtr
Definition: NotMovableSharedPtr.h:13
SWC::Config::T
const uint64_t T
Definition: Property.h:27