5#ifndef INCLUDE_GUARD_ARENE_BASE_STDLIB_INCLUDE_STDLIB_DETAIL_COMMON_TYPE_HPP_
6#define INCLUDE_GUARD_ARENE_BASE_STDLIB_INCLUDE_STDLIB_DETAIL_COMMON_TYPE_HPP_
14#include "arene/base/constraints.hpp"
15#include "stdlib/include/stdlib_detail/conditional.hpp"
16#include "stdlib/include/stdlib_detail/decay.hpp"
17#include "stdlib/include/stdlib_detail/declval.hpp"
18#include "stdlib/include/stdlib_detail/enable_if.hpp"
19#include "stdlib/include/stdlib_detail/is_same.hpp"
30template <
class T1,
class T2>
31using conditional_result_t =
decltype(
false ? declval<T1>() : declval<T2>());
43template <
class T1,
class T2>
52template <
class T1,
class T2>
58template <
class T1,
class T2>
89template <
typename T1,
typename T2>
108template <
class Constraints,
typename T1,
typename T2,
typename... Ts>
115template <
typename T1,
typename T2,
typename...
Ts>
130template <
typename T1,
typename T2,
typename... Ts>
Primary template for computing common type of 3 or more types.
Definition common_type.hpp:109
Primary template for decaying conditional result types.
Definition common_type.hpp:38
Primary template for determining the common type of a set of types.
Definition common_type.hpp:71
Definition common_type.hpp:23
constexpr bool are_already_decayed_v
Helper variable template that checks if both types are already decayed.
constexpr auto operator()(::arene::base::result< void, E > const &value) const noexcept(noexcept(hash< E >{}(std::declval< E const & >()))) -> std::size_t
Calculate the hash of a result.
Definition result.hpp:1827