| 239 | |
| 240 | template <typename... Args> |
| 241 | OverloadDecl MakeMemberOverloadDecl(Type result, Args&&... args) { |
| 242 | OverloadDecl overload_decl; |
| 243 | overload_decl.set_result(std::move(result)); |
| 244 | overload_decl.set_member(true); |
| 245 | auto& mutable_args = overload_decl.mutable_args(); |
| 246 | mutable_args.reserve(sizeof...(Args)); |
| 247 | (mutable_args.push_back(std::forward<Args>(args)), ...); |
| 248 | return overload_decl; |
| 249 | } |
| 250 | |
| 251 | // Avoid this version of `MakeMemberOverloadDecl`, it is less robust than the |
| 252 | // version that automatically generates a descriptive overload id at the time |