On Wed, 2024-10-30 at 12:22 +0000, Jonathan Wakely wrote: > On 29/10/24 19:19 -0400, David Malcolm wrote: > > This patch generalizes diagnostic_context so that rather than > > having > > a single output format, it has a vector of zero or more. > > [snip] > > > +/* Class for parsing the arguments of -fdiagnostics-add-output= > > and > > + -fdiagnostics-set-output=, and making diagnostic_output_format > > + instances (or issuing errors). */ > > + > > +class output_factory > > +{ > > +public: > > + class handler > > + { > > + public: > > + handler (std::string name) : m_name (name) {} > > How long are these names? > > If they don't fit in 15 chars, then this should be std::move(name). > > So for a name like "sarif:version=2.1" it should be moved, otherwise > you make a deep copy and reallocate a new string.
These are the names of the output schemes, which currently are just "text" and "sarif" [1], well under 15 chars - but there might be other schemes with longer names in the future [2] so I can use std::move here (and reinforce the habit of doing it). Dave [1] see https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-add-output [2] I'm playing with "experimental-html" which is 17 chars