m_sUser.compareNoCase(pmA2U("pmkerberosuser").buffer())
pmA2U 按值返回一个对象,该对象有一个成员函数 buffer() 用于访问其内部缓冲区。为 pMA2U 的返回值构造的临时对象是否会在封闭函数 compareNoCase 完成之前一直存在,并将其作为参数传递给该函数?
最佳答案
是的。一个临时对象持续到创建它的完整表达式结束。在这种情况下,完整的表达式就是整个语句,因此它将一直持续到函数返回之后。
确保该函数不会在任何地方存储指向缓冲区的指针或引用,因为它们在返回后不久就会失效。
关于c++ - 这是传递临时对象的安全方法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20398370/