20inline namespace cpp20 {
36template <
typename C,
typename X,
typename Y>
55template <
typename C,
typename X,
typename Y,
bool Same>
62template <
typename C,
typename X,
typename Y>
65 using type = std::add_pointer<
70 std::is_same<C, X>::value
76template <
typename C,
typename X,
typename Y>
79 using type = std::add_lvalue_reference<
84 std::is_same<C, X>::value
90template <
typename C,
typename X,
typename Y,
size_t N>
97 std::is_same<C, X>::value
102template <
typename Cr,
typename... CArgs,
typename X,
typename Y>
110 std::is_same<Cr, X>::value
119 std::is_same<CArgs, X>::value
126template <
typename C,
typename X,
typename Y>
132template <
typename C,
typename X,
typename Y>
139 std::is_arithmetic<C>::value,
140 std::type_identity<C>,
Encapsulate solution for Exercise 2-1.
std::add_pointer< typename replace_type_dispatch< C, X, Y, std::is_same< C, X >::value >::type >::type type
std::add_lvalue_reference< typename replace_type_dispatch< C, X, Y, std::is_same< C, X >::value >::type >::type type
replace_type_dispatch< C, X, Y, std::is_same< C, X >::value >::type[N] type
ret_type(typename replace_type_dispatch< CArgs, X, Y, std::is_same< CArgs, X >::value >::type...) func_type
The signature of the replaced function.
replace_type_dispatch< Cr, X, Y, std::is_same< Cr, X >::value >::type ret_type
The return type of the "replaced" function.
std::conditional< std::is_arithmetic< C >::value, std::type_identity< C >, replace_type< C, X, Y > >::type::type type
Internal type used by replace_type.
Given an arbitrary compound type, replace nested types.