diff --git a/VersionedMap.cpp b/VersionedMap.cpp index 991f82e..8e77165 100644 --- a/VersionedMap.cpp +++ b/VersionedMap.cpp @@ -22,7 +22,13 @@ bool debugVerboseEnabled = true; #endif +static_assert(std::is_standard_layout_v); +static_assert(std::is_standard_layout_v); +static_assert(std::is_standard_layout_v); +static_assert(std::is_standard_layout_v); static_assert(std::bidirectional_iterator); +static_assert(std::is_standard_layout_v< + weaselab::VersionedMap::Iterator::VersionedMutation>); void *mmapSafe(void *addr, size_t len, int prot, int flags, int fd, off_t offset) { diff --git a/include/VersionedMap.h b/include/VersionedMap.h index 00ec13c..41f03d4 100644 --- a/include/VersionedMap.h +++ b/include/VersionedMap.h @@ -104,7 +104,12 @@ struct VersionedMap { Iterator(Iterator &&) noexcept; Iterator &operator=(Iterator &&) noexcept; - struct VersionedMutation : Mutation { + struct VersionedMutation { + const uint8_t *param1; + const uint8_t *param2; + int param1Len; + int param2Len; + MutationType type; int64_t version; }; @@ -122,7 +127,7 @@ struct VersionedMap { Iterator operator--(int); using difference_type = ptrdiff_t; - using value_type = Mutation; + using value_type = VersionedMutation; bool operator==(const Iterator &) const; bool operator!=(const Iterator &) const;