userver: userver/utils/underlying_value.hpp Source File
Loading...
Searching...
No Matches
underlying_value.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/utils/underlying_value.hpp
4/// @brief @copybrief utils::UnderlyingValue
5/// @ingroup userver_universal
6
7#include <type_traits>
8
9USERVER_NAMESPACE_BEGIN
10
11namespace utils {
12
13/// @brief Function that extracts integral value from enum or StrongTypedef
14template <class T, std::enable_if_t<std::is_enum_v<T>, int> /*Enable*/ = 0>
15constexpr auto UnderlyingValue(T v) noexcept {
16 return static_cast<std::underlying_type_t<T>>(v);
17}
18
19} // namespace utils
20
21USERVER_NAMESPACE_END