この無害に見えるコードがかなり危険であると考えるのは正しいですか?
template<typename T>
void insertLast(std::vector<T>& v)
{
if(v.empty()) return;
v.insert(v.begin(), v.back());
}
いくつかの回答を読んだ後のいくつかの説明..
要素をベクトルに挿入する方法を実際に尋ねているわけではありませんが、原則を疑問視するダミーの状況を作成しました..つまり、コピーを作成する必要があると思いますか (ここでは一時的なものが作成されます..そして const一時的な参照は有効であることが保証されています):
template<typename T>
void insertLast(std::vector<T>& v)
{
if(v.empty()) return;
v.insert(v.begin(), T(v.back()));
}