As an optimization, you may want to reuse a buffer as a scratchpad, but even then prefer to limit the variables's scope as much as possible and be careful not to cause bugs from data left in a recycled buffer as this is a common source of security bugs.
As an optimization, you may want to reuse a buffer as a scratchpad, but even then prefer to limit the variable's scope as much as possible and be careful not to cause bugs from data left in a recycled buffer as this is a common source of security bugs.
{
{
std::string buffer; // to avoid reallocations on every loop iteration
std::string buffer; // to avoid reallocations on every loop iteration
@ -13824,7 +13824,7 @@ This gives a more precise statement of design intent, better readability, more e
It is not inherently bad to pass a pointer or reference to non-const,
It is not inherently bad to pass a pointer or reference to non-const,
but that should be done only when the called function is supposed to modify the object.
but that should be done only when the called function is supposed to modify the object.
A reader of code must assume that a funtion that takes a "plain" `T*` or `T&` will modify the object referred to.
A reader of code must assume that a function that takes a "plain" `T*` or `T&` will modify the object referred to.
If it doesn't now, it might do so later without forcing recompilation.
If it doesn't now, it might do so later without forcing recompilation.