diff --git a/octa/memory.h b/octa/memory.h index 7e52278..478da6d 100644 --- a/octa/memory.h +++ b/octa/memory.h @@ -24,7 +24,7 @@ namespace octa { template static int __octa_test(...); template - static char __octa_test(typename U::element_type * = 0); + static char __octa_test(typename U::ElementType * = 0); static constexpr bool value = (sizeof(__octa_test(0)) == 1); }; @@ -33,12 +33,12 @@ namespace octa { struct __OctaPtrTraitsElementType; template struct __OctaPtrTraitsElementType { - typedef typename T::element_type type; + typedef typename T::ElementType type; }; template class T, typename U, typename ...A> struct __OctaPtrTraitsElementType, true> { - typedef typename T::element_type type; + typedef typename T::ElementType type; }; template class T, typename U, typename ...A> @@ -242,7 +242,7 @@ namespace octa { template static int __octa_ptr_test(...); template - static char __octa_ptr_test(typename T::pointer * = 0); + static char __octa_ptr_test(typename T::PointerType * = 0); template struct __OctaHasPtr: IntegralConstant(0)) == 1) @@ -250,7 +250,7 @@ namespace octa { template::value> struct __OctaPtrTypeBase { - typedef typename D::pointer type; + typedef typename D::PointerType type; }; template struct __OctaPtrTypeBase { @@ -263,9 +263,9 @@ namespace octa { template> struct Box { - typedef T element_type; - typedef D deleter_type; - typedef typename __OctaPtrType::type pointer; + typedef T ElementType; + typedef D DeleterType; + typedef typename __OctaPtrType::type PointerType; private: struct __OctaNat { int x; }; @@ -283,16 +283,16 @@ namespace octa { "Box constructed with null fptr deleter"); } - explicit Box(pointer p) noexcept: p_stor(p, D()) { + explicit Box(PointerType p) noexcept: p_stor(p, D()) { static_assert(!IsPointer::value, "Box constructed with null fptr deleter"); } - Box(pointer p, Conditional::value, + Box(PointerType p, Conditional::value, D, AddLvalueReference > d) noexcept: p_stor(p, d) {} - Box(pointer p, RemoveReference &&d) noexcept: p_stor(p, move(d)) { + Box(PointerType p, RemoveReference &&d) noexcept: p_stor(p, move(d)) { static_assert(!IsReference::value, "rvalue deleter cannot be a ref"); } @@ -301,7 +301,7 @@ namespace octa { template Box(Box &&u, EnableIf::value - && IsConvertible::pointer, pointer>::value + && IsConvertible::PointerType, PointerType>::value && IsConvertible::value && (!IsReference::value || IsSame::value) > = __OctaNat()) noexcept: p_stor(u.release(), @@ -315,7 +315,7 @@ namespace octa { template EnableIf::value - && IsConvertible::pointer, pointer>::value + && IsConvertible::PointerType, PointerType>::value && IsAssignable::value, Box & > operator=(Box &&u) noexcept { @@ -332,25 +332,25 @@ namespace octa { ~Box() { reset(); } AddLvalueReference operator*() const { return *p_stor.i_ptr; } - pointer operator->() const noexcept { return p_stor.i_ptr; } + PointerType operator->() const noexcept { return p_stor.i_ptr; } explicit operator bool() const noexcept { return p_stor.i_ptr != nullptr; } - pointer get() const noexcept { return p_stor.i_ptr; } + PointerType get() const noexcept { return p_stor.i_ptr; } D_ref get_deleter() noexcept { return p_stor.get_deleter(); } D_cref get_deleter() const noexcept { return p_stor.get_deleter(); } - pointer release() noexcept { - pointer p = p_stor.i_ptr; + PointerType release() noexcept { + PointerType p = p_stor.i_ptr; p_stor.i_ptr = nullptr; return p; } - void reset(pointer p = nullptr) noexcept { - pointer tmp = p_stor.i_ptr; + void reset(PointerType p = nullptr) noexcept { + PointerType tmp = p_stor.i_ptr; p_stor.i_ptr = p; if (tmp) p_stor.get_deleter()(tmp); } @@ -380,9 +380,9 @@ namespace octa { template struct Box { - typedef T element_type; - typedef D deleter_type; - typedef typename __OctaPtrType::type pointer; + typedef T ElementType; + typedef D DeleterType; + typedef typename __OctaPtrType::type PointerType; private: struct __OctaNat { int x; }; @@ -401,7 +401,7 @@ namespace octa { } template explicit Box(U p, EnableIf< - __OctaSameOrLessCvQualified::value, __OctaNat + __OctaSameOrLessCvQualified::value, __OctaNat > = __OctaNat()) noexcept: p_stor(p, D()) { static_assert(!IsPointer::value, "Box constructed with null fptr deleter"); @@ -409,7 +409,7 @@ namespace octa { template Box(U p, Conditional::value, D, AddLvalueReference - > d, EnableIf<__OctaSameOrLessCvQualified::value, __OctaNat + > d, EnableIf<__OctaSameOrLessCvQualified::value, __OctaNat > = __OctaNat()) noexcept: p_stor(p, d) {} Box(nullptr_t, Conditional::value, @@ -417,7 +417,7 @@ namespace octa { > d) noexcept: p_stor(nullptr, d) {} template Box(U p, RemoveReference &&d, EnableIf< - __OctaSameOrLessCvQualified::value, __OctaNat + __OctaSameOrLessCvQualified::value, __OctaNat > = __OctaNat()) noexcept: p_stor(p, move(d)) { static_assert(!IsReference::value, "rvalue deleter cannot be a ref"); @@ -432,8 +432,8 @@ namespace octa { template Box(Box &&u, EnableIf::value - && __OctaSameOrLessCvQualified::pointer, - pointer>::value + && __OctaSameOrLessCvQualified::PointerType, + PointerType>::value && IsConvertible::value && (!IsReference::value || IsSame::value)> = __OctaNat() ) noexcept: p_stor(u.release(), forward
(u.get_deleter())) {} @@ -446,8 +446,8 @@ namespace octa { template EnableIf::value - && __OctaSameOrLessCvQualified::pointer, - pointer>::value + && __OctaSameOrLessCvQualified::PointerType, + PointerType>::value && IsAssignable::value, Box & > operator=(Box &&u) noexcept { @@ -471,27 +471,27 @@ namespace octa { return p_stor.i_ptr != nullptr; } - pointer get() const noexcept { return p_stor.i_ptr; } + PointerType get() const noexcept { return p_stor.i_ptr; } D_ref get_deleter() noexcept { return p_stor.get_deleter(); } D_cref get_deleter() const noexcept { return p_stor.get_deleter(); } - pointer release() noexcept { - pointer p = p_stor.i_ptr; + PointerType release() noexcept { + PointerType p = p_stor.i_ptr; p_stor.i_ptr = nullptr; return p; } template EnableIf< - __OctaSameOrLessCvQualified::value, void + __OctaSameOrLessCvQualified::value, void > reset(U p) noexcept { - pointer tmp = p_stor.i_ptr; + PointerType tmp = p_stor.i_ptr; p_stor.i_ptr = p; if (tmp) p_stor.get_deleter()(tmp); } void reset(nullptr_t) noexcept { - pointer tmp = p_stor.i_ptr; + PointerType tmp = p_stor.i_ptr; p_stor.i_ptr = nullptr; if (tmp) p_stor.get_deleter()(tmp); }