#include <iostream>
int main()
{
// 1. OK
auto str1 = std::string("abc");
std::cout << str1.c_str() << std::endl;
// 2. NG
auto str2 = std::string("abc").c_str();
std::cout << str2 << std::endl;
// 22. NG
const char* str22;
{
std::string tmp = std::string("abc");
str22 = tmp.c_str();
}
std::cout << str22 << std::endl;
// 3. OK
std::cout << std::string("abc").c_str() << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1haW4oKQp7CiAgICAvLyAxLiBPSwogICAgYXV0byBzdHIxID0gc3RkOjpzdHJpbmcoImFiYyIpOwogICAgc3RkOjpjb3V0IDw8IHN0cjEuY19zdHIoKSA8PCBzdGQ6OmVuZGw7CgogICAgLy8gMi4gTkcKICAgIGF1dG8gc3RyMiA9IHN0ZDo6c3RyaW5nKCJhYmMiKS5jX3N0cigpOwogICAgc3RkOjpjb3V0IDw8IHN0cjIgPDwgc3RkOjplbmRsOwogICAgCiAgICAvLyAyMi4gTkcKICAgIGNvbnN0IGNoYXIqIHN0cjIyOwogICAgewogICAgCXN0ZDo6c3RyaW5nIHRtcCA9IHN0ZDo6c3RyaW5nKCJhYmMiKTsKCQlzdHIyMiA9IHRtcC5jX3N0cigpOwogICAgfQogICAgc3RkOjpjb3V0IDw8IHN0cjIyIDw8IHN0ZDo6ZW5kbDsKICAgIAoKICAgIC8vIDMuIE9LCiAgICBzdGQ6OmNvdXQgPDwgc3RkOjpzdHJpbmcoImFiYyIpLmNfc3RyKCkgPDwgc3RkOjplbmRsOwogICAgcmV0dXJuIDA7Cn0K