From 496184b1bce90189c11e820ddf4e894c051ea66a Mon Sep 17 00:00:00 2001 From: Max Kellermann <max.kellermann@gmail.com> Date: Thu, 5 Oct 2023 10:33:51 +0200 Subject: [PATCH] io/Reader: add method ReadT() --- src/io/Reader.hxx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/io/Reader.hxx b/src/io/Reader.hxx index 473d2ddf6..970706548 100644 --- a/src/io/Reader.hxx +++ b/src/io/Reader.hxx @@ -5,6 +5,7 @@ #define READER_HXX #include <cstddef> +#include <type_traits> /** * An interface that can read bytes from a stream until the stream @@ -26,6 +27,13 @@ public: */ [[gnu::nonnull]] virtual std::size_t Read(void *data, std::size_t size) = 0; + + template<typename T> + requires std::is_standard_layout_v<T> && std::is_trivially_copyable_v<T> + void ReadT(T &dest) { + // TODO check return value + Read(&dest, sizeof(dest)); + } }; #endif