#pragma once #include #include namespace mstch { using citer = std::string::const_iterator; using criter = std::string::const_reverse_iterator; citer first_not_ws(citer begin, citer end); citer first_not_ws(criter begin, criter end); std::string html_escape(const std::string &str); criter reverse(citer it); template auto visit(Args &&... args) -> decltype(boost::apply_visitor(std::forward(args)...)) { return boost::apply_visitor(std::forward(args)...); } }