私はC ++を初めて使用し、おそらく次の バグに遭遇しましたが、どういうわけか私のプログラムはうまくいきます..コードは次のとおりです
#include<iostream>
#include<queue>
#include <string>
int main()
{
string s ("cat");
queue<string> _queue;
_queue.push(s);
string & s1 = _queue.front();
_queue.pop();
// at this time s1 should become invalid as pop called destructor on s
std::cout << s1 << std::endl;
return 0;
}
s1 が無効なオブジェクトへの参照であっても、機能します。s1 が本当に無効なオブジェクトを参照していると断言できる方法はありますか?