我不知道,但这对我没用。当我尝试从返回std string的函数中设置char *值时,我得到了垃圾值:
string foo()
{
string tmp ="dummy value";
return tmp;
}
char* cc = (char *) foo().c_str(); // if i remove the casting im getting error
// when i print the cc i get garbage
printf("%s",cc);
const reference
延长 rvalue 的生命周期是一条奇特的规则,仅记住 值 也可以(可能在 C++11 中通过移动语义进行优化)。 - xtoflfoo()
作为初始化程序存储值,则不需要移动语义。无聊的老旧C++03复制省略将完成它。 - Steve Jessop