[DEV] Add deleter in SharedPtr when contruct the object
This commit is contained in:
parent
643a37b289
commit
70dd3441e3
@ -49,18 +49,19 @@ namespace ememory {
|
||||
typename etk::EnableIf< etk::IsSame<EMEMORY_TYPE2, EMEMORY_TYPE>::value
|
||||
&& etk::IsBaseOf<ememory::EnableSharedFromThisBase, EMEMORY_TYPE2>::value
|
||||
, int>::type = 0>
|
||||
SharedPtr(EMEMORY_TYPE2* _element);
|
||||
SharedPtr(EMEMORY_TYPE2* _element, deleterCall&& _deleter = [](void* _data) { delete((EMEMORY_TYPE*)_data);});
|
||||
template<class EMEMORY_TYPE2,
|
||||
typename etk::EnableIf< etk::IsSame<EMEMORY_TYPE2, EMEMORY_TYPE>::value
|
||||
&& !etk::IsBaseOf<ememory::EnableSharedFromThisBase, EMEMORY_TYPE2>::value
|
||||
, int>::type = 0>
|
||||
SharedPtr(EMEMORY_TYPE2* _element);
|
||||
SharedPtr(EMEMORY_TYPE2* _element, deleterCall&& _deleter = [](void* _data) { delete((EMEMORY_TYPE*)_data);});
|
||||
#else
|
||||
/**
|
||||
* @brief Contructor whith the pointer of data
|
||||
* @param[in] _element allocated data (SharedPtr will remove it)
|
||||
* @param[in] _deleter Deleter function of the data.
|
||||
*/
|
||||
SharedPtr(EMEMORY_TYPE2* _element);
|
||||
SharedPtr(EMEMORY_TYPE2* _element, deleterCall&& _deleter);
|
||||
#endif
|
||||
public:
|
||||
/**
|
||||
|
@ -13,10 +13,10 @@ template<class EMEMORY_TYPE2,
|
||||
typename etk::EnableIf< etk::IsSame<EMEMORY_TYPE2, EMEMORY_TYPE>::value
|
||||
&& etk::IsBaseOf<ememory::EnableSharedFromThisBase, EMEMORY_TYPE2>::value
|
||||
, int>::type>
|
||||
ememory::SharedPtr<EMEMORY_TYPE>::SharedPtr(EMEMORY_TYPE2* _element):
|
||||
ememory::SharedPtr<EMEMORY_TYPE>::SharedPtr(EMEMORY_TYPE2* _element, deleterCall&& _deleter):
|
||||
m_element(_element),
|
||||
m_counter(nullptr),
|
||||
m_deleter(createDeleter()) {
|
||||
m_deleter(_deleter) {
|
||||
EMEMORY_DBG("new shared");
|
||||
if (m_element == nullptr) {
|
||||
return;
|
||||
@ -36,10 +36,10 @@ template<class EMEMORY_TYPE2,
|
||||
typename etk::EnableIf< etk::IsSame<EMEMORY_TYPE2, EMEMORY_TYPE>::value
|
||||
&& !etk::IsBaseOf<ememory::EnableSharedFromThisBase, EMEMORY_TYPE2>::value
|
||||
, int>::type>
|
||||
ememory::SharedPtr<EMEMORY_TYPE>::SharedPtr(EMEMORY_TYPE2* _element):
|
||||
ememory::SharedPtr<EMEMORY_TYPE>::SharedPtr(EMEMORY_TYPE2* _element, deleterCall&& _deleter):
|
||||
m_element(_element),
|
||||
m_counter(nullptr),
|
||||
m_deleter(createDeleter()) {
|
||||
m_deleter(_deleter) {
|
||||
EMEMORY_DBG("new shared");
|
||||
if (m_element == nullptr) {
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user