16 constexpr decltype(
auto)
unWrapp(T&& value)
18 using WrappedType = std::unwrap_reference_t<std::decay_t<
decltype(value)>>;
19 return std::unwrap_reference_t<WrappedType>(std::forward<T>(value));
36 static_assert(std::is_pointer_v<T>);
37 using DataType = std::remove_pointer_t<T>;
38 using VoidPtrType = std::conditional_t<std::is_const_v<DataType>,
void const*,
void*>;
constexpr decltype(auto) unWrapp(T &&value)
auto * toVoidPtr(T inPtr)
Cast a pointer that may or may not point to volatile memory to a (void*) or (void const*).
std::add_pointer_t< std::remove_volatile_t< std::remove_pointer_t< T > > > RemoveVolatileFromPointer_t