Zserio C++17 runtime library 1.3.0
Built for Zserio 2.20.0
Loading...
Searching...
No Matches
BuiltInOperators.h
Go to the documentation of this file.
1#ifndef ZSERIO_BUILTIN_BUILT_IN_OPERATORS_H_INC
2#define ZSERIO_BUILTIN_BUILT_IN_OPERATORS_H_INC
3
4#include <cstdint>
5
6#include "zserio/Enums.h"
7#include "zserio/Traits.h"
8
9namespace zserio
10{
11
12namespace builtin
13{
14
25template <typename BITMASK1, typename BITMASK2>
30
52
60template <typename T, std::enable_if_t<std::is_enum_v<T>, int> = 0>
61constexpr auto valueOf(T value)
62{
63 return enumToValue(value);
64}
65
73template <typename T, std::enable_if_t<zserio::is_bitmask_v<T>, int> = 0>
74constexpr auto valueOf(T value)
75{
76 return value.getValue();
77}
78
79} // namespace builtin
80
81} // namespace zserio
82
83#endif // ifndef ZSERIO_BUILTIN_BUILT_IN_OPERATORS_H_INC
constexpr auto valueOf(T value)
uint8_t numBits(uint64_t numValues)
bool isSet(BITMASK1 bitmaskValue, BITMASK2 requiredMask)
constexpr EnumTraits< T >::ZserioType enumToValue(T value)
Definition Enums.h:56