Помимо других ответов, вы также можете подумать о перегрузке foo()
:
template <typename T>
void foo(T t) {}
void foo(std::string &t) {}
std::string str("some huge text");
foo(str);
Таким образом, вы не измените фактическое поведение foo()
и не завершите свою работу с перегруженной версией.