Я знаю, что вообще невозможно сбросить ссылку после ее инициализации.
Тем не менее, я как-то пробую следующий код, и он работает как на clang++, так и на g++.
Мой вопрос заключается в следующем: действительный (определяемый поведением) C++?
std::string x = "x";
std::string y = "y";
std::string i = "i";
std::string j = "j";
// now references to x, y
std::pair<std::string &, std::string &> p { x, y };
p.first = "1"; //changes x
p.second = "2"; //changes y
// now references to i, j
new (&p) std::pair<std::string &, std::string &> {i, j};
p.first = "1"; //changes i
p.second = "2"; //changes j
Вышеприведенный код работает на g++ и clang++, но хорошо ли C++? Благодарю.