Skip to content
Snippets Groups Projects
Unverified Commit 3acd6fa0 authored by bunnei's avatar bunnei Committed by GitHub
Browse files

Merge pull request #741 from lioncash/enum

ipc_helpers: Add PushEnum() member function to ResponseBuilder
parents c1c9ab31 0a0b3c4b
No related branches found
No related tags found
No related merge requests found
......@@ -174,6 +174,25 @@ public:
template <typename First, typename... Other>
void Push(const First& first_value, const Other&... other_values);
/**
* Helper function for pushing strongly-typed enumeration values.
*
* @tparam Enum The enumeration type to be pushed
*
* @param value The value to push.
*
* @note The underlying size of the enumeration type is the size of the
* data that gets pushed. e.g. "enum class SomeEnum : u16" will
* push a u16-sized amount of data.
*/
template <typename Enum>
void PushEnum(Enum value) {
static_assert(std::is_enum_v<Enum>, "T must be an enum type within a PushEnum call.");
static_assert(!std::is_convertible_v<Enum, int>,
"enum type in PushEnum must be a strongly typed enum.");
Push(static_cast<std::underlying_type_t<Enum>>(value));
}
/**
* @brief Copies the content of the given trivially copyable class to the buffer as a normal
* param
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment