T is used over
const T&, a copy has to be generated, even if the caller is only interested in a reference. If
const T& is used and the caller only wants a reference, no copy is needed.
std::string does not store the text locally, but has to execute a
delete at construction time, which
const char* and
constexpr const char* do not have to do.