userver: userver/utils/void_t.hpp Source File
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
void_t.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/utils/void_t.hpp
4/// @brief @copybrief utils::void_t
5
6#include <type_traits>
7
8USERVER_NAMESPACE_BEGIN
9
10namespace utils {
11
12#if (__cpp_lib_void_t >= 201411 && !defined(__clang__)) || defined(DOXYGEN)
13/// @brief std::void_t implementation with workarounds for compiler bugs
14///
15/// @ingroup userver_universal
16template <typename... T>
17using void_t = std::void_t<T...>;
18#else
19
20template <typename... T>
21struct make_void_t {
22 using type = void;
23};
24template <typename... T>
25using void_t = typename make_void_t<T...>::type;
26
27#endif
28
29} // namespace utils
30
31USERVER_NAMESPACE_END