| 499 | |
| 500 | template <typename Elem, typename Pattern> |
| 501 | string Explanation(Elem* elem, const Pattern& pattern) { |
| 502 | std::stringstream ss; |
| 503 | MatchOption options{/*.capture=*/true, /*.explain_os=*/&ss}; |
| 504 | Match(elem, pattern, options); |
| 505 | return ss.str(); |
| 506 | } |
| 507 | template <typename Elem, typename Pattern> |
| 508 | string Explanation(const std::unique_ptr<Elem>& elem, const Pattern& pattern) { |
| 509 | return Explanation(elem.get(), pattern); |