Я наткнулся на пример из "Эффективного C++ во встроенной среде" Скотта Мейерса, где были описаны два способа использования параметров по умолчанию: один из них был описан как дорогостоящий, а другой как лучший вариант.
Мне не хватает объяснения, почему первый вариант может быть более дорогостоящим по сравнению с другим.
void doThat(const std::string& name = "Unnamed"); // Bad
const std::string defaultName = "Unnamed";
void doThat(const std::string& name = defaultName); // Better