引用传递函数通常如何与值传递函数区分开来?例如:
template <typename T>
void sort(std::vector<T>& source); // Sorts source.
// Versus...
template <typename T>
std::vector<T> sort(std::vector<T> source); // Returns a sorted copy of source.
这两个功能是模棱两可的;其中之一必须重命名或完全删除。
如何避免这种情况?一种形式是否应该优于另一种形式?还是有任何通用的命名准则来区分它们?