Является ли следующий законным в С++?
Насколько я могу судить, Reference
имеет тривиальный деструктор, поэтому он должен быть законным.
Но я думал, что ссылки не могут быть восстановлены на законных основаниях... могут ли они?
template<class T>
struct Reference
{
T &r;
Reference(T &r) : r(r) { }
};
int main()
{
int x = 5, y = 6;
Reference<int> r(x);
new (&r) Reference<int>(y);
}