Given a void *
to some storage, how to check whether it points to properly aligned storage without any implementation defined behavior?
Of course we have std::align
, but is there a more effective way to do this?
template <std::size_t alignment>
inline bool is_aligned(void * ptr) noexcept {
std::size_t max = 1u;
return std::align(alignment, 1u, ptr, max);
}
PS: I need to do this in a C++ standards-compatible fashion, without relying on any platform-specific (implementation defined) hacks.
PPS: I apologize for my (comprehension of) English, its not my native language.
EDIT (2018.08.24): Removed "effective" from the title, added even more wording to emphasize that I don't want any implementation defined or platform-specific behavior.