| 4629 | |
| 4630 | template<typename Action, typename Attribute, typename Context> |
| 4631 | constexpr auto action_assignable_to_val_direct() |
| 4632 | { |
| 4633 | if constexpr (is_nope_v<decltype(*std::declval<Context>().val_)>) { |
| 4634 | return false; |
| 4635 | } else if constexpr (!is_detected_v< |
| 4636 | action_direct_call_expr, |
| 4637 | Action, |
| 4638 | Attribute>) { |
| 4639 | return false; |
| 4640 | } else if constexpr (std::is_same_v< |
| 4641 | action_direct_call_expr<Action, Attribute>, |
| 4642 | void>) { |
| 4643 | return false; |
| 4644 | } else { |
| 4645 | return is_detected_v< |
| 4646 | action_assignable_to_val_direct_expr, |
| 4647 | Action, |
| 4648 | Attribute, |
| 4649 | Context>; |
| 4650 | } |
| 4651 | } |
| 4652 | |
| 4653 | template<typename Action, typename Attribute, typename Context> |
| 4654 | constexpr auto action_assignable_to_val_apply() |
nothing calls this directly
no outgoing calls
no test coverage detected