| 149 | typename = std::enable_if_t<IsExprLike<Target>::value>, |
| 150 | typename = std::enable_if_t<std::conjunction_v<IsRValue<Expr, Args>...>>> |
| 151 | ABSL_MUST_USE_RESULT Expr NewMemberCall(Function function, Target target, |
| 152 | Args&&... args) { |
| 153 | std::vector<Expr> array; |
| 154 | array.reserve(sizeof...(Args)); |
| 155 | (array.push_back(std::forward<Args>(args)), ...); |
| 156 | return NewMemberCall(NextId(), std::move(function), std::move(target), |
| 157 | std::move(array)); |
| 158 | } |
| 159 | |
| 160 | template <typename Function, typename Target, typename Args, |
| 161 | typename = std::enable_if_t<IsStringLike<Function>::value>, |
no outgoing calls