16namespace seqan3::detail
30template <
typename source_t,
typename target_t>
31struct transfer_type_modifier_onto
35 using maybe_const_target_t = std::conditional_t<std::is_const_v<std::remove_reference_t<source_t>>
37 std::add_const_t<std::remove_cvref_t<target_t>>,
38 std::remove_cvref_t<target_t>>;
41 using maybe_rvalue_reference_t =
43 std::add_rvalue_reference_t<maybe_const_target_t>,
44 maybe_const_target_t>;
47 using maybe_lvalue_reference_target_t =
49 std::add_lvalue_reference_t<maybe_rvalue_reference_t>,
50 maybe_rvalue_reference_t>;
54 using type = maybe_lvalue_reference_target_t;
64template <
typename source_t,
typename target_t>
65using transfer_type_modifier_onto_t =
typename transfer_type_modifier_onto<source_t, target_t>::type;