次の 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 ++でテストするとうまくいきます。