1) Является ли поведение undefined возвратом ссылки на временную, даже если эта ссылка не используется? Например, гарантируется ли эта программа "хорошим":
int& func()
{
int i = 5;
return i;
}
int main()
{
func();
cout << "good" << endl;
return 0;
}
2) Является ли поведение undefined просто ссылкой на объект, который больше не существует, даже если эта ссылка не используется? Например, гарантируется ли эта программа "хорошим":
int main()
{
int *j = new int();
int &k = *j;
delete j;
cout << "good" << endl;
return 0;
}
3) Совместимо ли это поведение undefined?
int& func()
{
int i = 5;
return i;
}
int main()
{
int& p = func();
cout << "good" << endl;
return 0;
}