Commit f8da8b02 authored by Max Kellermann's avatar Max Kellermann

util/Cast: add const overloads

parent 393cb7fd
......@@ -41,6 +41,15 @@ OffsetPointer(void *p, ptrdiff_t offset)
return (char *)p + offset;
}
/**
* Offset the given pointer by the specified number of bytes.
*/
static inline constexpr const void *
OffsetPointer(const void *p, ptrdiff_t offset)
{
return (const char *)p + offset;
}
template<typename T, typename U>
static inline constexpr T *
OffsetCast(U *p, ptrdiff_t offset)
......@@ -48,6 +57,13 @@ OffsetCast(U *p, ptrdiff_t offset)
return reinterpret_cast<T *>(OffsetPointer(p, offset));
}
template<typename T, typename U>
static inline constexpr T *
OffsetCast(const U *p, ptrdiff_t offset)
{
return reinterpret_cast<const T *>(OffsetPointer(p, offset));
}
/**
* Cast the given pointer to a struct member to its parent structure.
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment