参照渡し関数は通常、値渡し関数とどのように区別されますか? 例えば:
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.
これら 2 つの関数はあいまいです。そのうちの 1 つは名前を変更するか、完全に削除する必要があります。
この状況をどのように回避できますか? どちらかの形式を優先する必要がありますか? または、それらを区別するための一般的な命名ガイドラインはありますか?