以下 C++ 代码是否格式正确:
void consumer(char const* p)
{
std::printf("%s", p);
}
std::string random_string_generator()
{
// returns a random std::string object
}
consumer(random_string_generator().c_str());
我遇到的问题是,在创建临时 std::string 对象并获取 c_str() 指针之后,没有什么能阻止 std::string 对象被破坏(或者我错了?)。你能否指出我的标准,如果代码没问题的话。当我用 g++ 进行测试时,它确实有效。