20 template<
class... Args>
static void note(
Loc loc, format::format_string<Args...> fmt, Args&&... args) { std::cerr << loc <<
": note: " << format::format(fmt, std::forward<Args>(args)...) << std::endl; }
21 template<
class... Args>
void warn(
Loc loc, format::format_string<Args...> fmt, Args&&... args) { ++num_warnings_; std::cerr << loc <<
": warning: " << format::format(fmt, std::forward<Args>(args)...) << std::endl; }
22 template<
class... Args>
void err (
Loc loc, format::format_string<Args...> fmt, Args&&... args) { ++num_errors_; std::cerr << loc <<
": error: " << format::format(fmt, std::forward<Args>(args)...) << std::endl; }
30 unsigned num_errors_ = 0;
31 unsigned num_warnings_ = 0;