Этот код хранит rvalue ссылку на новую строку, полагаясь на продление времени жизни, чтобы сохранить действительную строку.
В этом случае это очень похоже на выполнение const string& x = GetEditTxtAccount()
, что также бессмысленно.
Это также возможно опасно, потому что, если функция вернула ссылку, вы могли бы ее повесить.
Конечно, в этом нет никакой пользы.
ПростоВместо этого объявите правильное значение:
const string x = GetEditTxtAccount();
Если вы беспокоитесь о копиях, вы не получите их из-за семантики перемещения (до C ++ 17) и из-за гарантированного исключения(начиная с C ++ 17).
Что касается почему автор написал это так, ну, некоторые люди перебирают rvalue refs, не понимая почему.