void* data() { return reinterpret_cast<void*>(value.data()); }
const void* data() const { return reinterpret_cast<const void*>(value.data()); }
void* data() { return reinterpret_cast<void*>(value.data()); }
const void* data() const { return reinterpret_cast<const void*>(value.data()); }