VCCC  2024.05
VisualCamp Common C++ library
test_ternary.hpp
Go to the documentation of this file.
1 //
2 // Created by cosge on 2023-12-03.
3 //
4 
5 #ifndef VCCC_TYPE_TRAITS_DETAIL_TEST_TERNARY_HPP_
6 #define VCCC_TYPE_TRAITS_DETAIL_TEST_TERNARY_HPP_
7 
8 #include <type_traits>
9 
11 
12 namespace vccc {
13 namespace detail {
14 
15 template<typename T1, typename T2, typename = void>
16 struct test_ternary_impl {};
17 
18 template<typename T1, typename T2>
19 struct test_ternary_impl<T1, T2, void_t<decltype(false ? std::declval<T1>() : std::declval<T2>())>> {
20  using type = decltype(false ? std::declval<T1>() : std::declval<T2>());
21 };
22 
23 template<typename T1, typename T2>
24 struct test_ternary : test_ternary_impl<T1, T2> {};
25 
26 template<typename T1, typename T2>
27 using test_ternary_t = typename test_ternary<T1, T2>::type;
28 
29 } // namespace detail
30 } // namespace vccc
31 
32 #endif // VCCC_TYPE_TRAITS_DETAIL_TEST_TERNARY_HPP_
void void_t
Definition: void_t.hpp:19
Definition: matrix.hpp:495
Definition: directory.h:12