以下的C++代码是否格式良好?
我对它的问题是,在创建临时的std::string对象并获取c_str()指针之后,没有任何阻止std::string对象被销毁的措施,除非我错了。
根据标准,这段代码是否符合规范?在我使用g++进行测试时,它是有效的。
void consumer(char const* p)
{
std::printf("%s", p);
}
std::string random_string_generator();
consumer(random_string_generator().c_str());
我对它的问题是,在创建临时的std::string对象并获取c_str()指针之后,没有任何阻止std::string对象被销毁的措施,除非我错了。
根据标准,这段代码是否符合规范?在我使用g++进行测试时,它是有效的。
temp
并复制字符时,const char*
是有效的。但为什么不直接移动函数返回的字符串呢? - Bolpat