From 0aa9007705231b72616c533aeed6a28ca3349999 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 4 Sep 2015 14:14:44 +0200 Subject: Add support for "emplacing" file/line/column into location in diagnostics --- bpkg/diagnostics | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'bpkg') diff --git a/bpkg/diagnostics b/bpkg/diagnostics index d1183d2..85eef2b 100644 --- a/bpkg/diagnostics +++ b/bpkg/diagnostics @@ -263,6 +263,18 @@ namespace bpkg return location_prologue (type_, name_, get_location (l, data_)); } + template + location_prologue + operator() (F&& f, L&& l, C&& c) const + { + return location_prologue ( + type_, + name_, + location (std::forward (f), + std::forward (l), + std::forward (c))); + } + protected: const char* type_; const char* name_; @@ -315,6 +327,19 @@ namespace bpkg &epilogue, "error", nullptr, get_location (l, data_)); } + template + location_prologue + operator() (F&& f, L&& l, C&& c) const + { + return location_prologue ( + &epilogue, + "error", + nullptr, + location (std::forward (f), + std::forward (l), + std::forward (c))); + } + static void epilogue (const diag_record&) {throw E ();} -- cgit v1.1