/** @file * @author Edouard DUPIN * @copyright 2016, Edouard DUPIN, all right reserved * @license MPL v2.0 (see license file) */ #pragma once #include #include template ememory::EnableSharedFromThis::EnableSharedFromThis() : m_weakThis(static_cast(this)) { EMEMORY_DBG("create shared from this ..."); } template ememory::SharedPtr ememory::EnableSharedFromThis::sharedFromThis() { return m_weakThis.lock(); } template const ememory::SharedPtr ememory::EnableSharedFromThis::sharedFromThis() const{ return m_weakThis.lock(); } template ememory::WeakPtr ememory::EnableSharedFromThis::weakFromThis() { return m_weakThis; } template const ememory::WeakPtr ememory::EnableSharedFromThis::weakFromThis() const { return m_weakThis; }