17#ifndef TOOLBOX_IO_EVENT_HPP
18#define TOOLBOX_IO_EVENT_HPP
30static_assert(std::is_standard_layout_v<MsgEvent>
31 && std::is_trivially_default_constructible_v<MsgEvent>
32 && std::is_trivially_copyable_v<MsgEvent>);
33static_assert(
sizeof(
MsgEvent) +
sizeof(std::int64_t) == 1536);
35template <
typename DataT>
38 static_assert(
alignof(
DataT) <= 8);
39 static_assert(std::is_nothrow_default_constructible_v<DataT>);
40 static_assert(std::is_trivially_copyable_v<DataT>);
48 static_assert(
alignof(
DataT) <= 8);
49 static_assert(std::is_nothrow_constructible_v<
DataT,
ArgsT...>);
50 static_assert(std::is_trivially_copyable_v<DataT>);
55template <
typename DataT>
58 return *
reinterpret_cast<const DataT*
>(
ev.data);
61template <
typename DataT>
64 return *
reinterpret_cast<DataT*
>(
ev.data);