#include <string>
#include <iostream>
#include <memory>
struct Token
{
int num;
std::string val;
};
int main()
{
Token t1{0, "myval 1"};
Token t2;
t2.val = "myval 2";
auto t3 = std::unique_ptr<Token>(new Token());
t3->val = "myval 3";
auto t4 = std::make_shared<Token>();
t4->val = "myval 4";
Token* t5 = new Token();
t5->val = "myval 5";
std::cout << t1.val << "," << t2.val << "," << t3->val << "," << t4->val << "," << t5->val << "\n";
delete t5;
}
CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPG1lbW9yeT4KCgpzdHJ1Y3QgVG9rZW4KewogIGludCBudW07CiAgc3RkOjpzdHJpbmcgdmFsOwp9OwoKCmludCBtYWluKCkKewogIFRva2VuIHQxezAsICJteXZhbCAxIn07CiAgVG9rZW4gdDI7CiAgdDIudmFsID0gIm15dmFsIDIiOwogIGF1dG8gdDMgPSBzdGQ6OnVuaXF1ZV9wdHI8VG9rZW4+KG5ldyBUb2tlbigpKTsKICB0My0+dmFsID0gIm15dmFsIDMiOwogIGF1dG8gdDQgPSBzdGQ6Om1ha2Vfc2hhcmVkPFRva2VuPigpOwogIHQ0LT52YWwgPSAibXl2YWwgNCI7CiAgVG9rZW4qIHQ1ID0gbmV3IFRva2VuKCk7CiAgdDUtPnZhbCA9ICJteXZhbCA1IjsKICBzdGQ6OmNvdXQgPDwgdDEudmFsIDw8ICIsIiA8PCB0Mi52YWwgPDwgIiwiIDw8IHQzLT52YWwgPDwgIiwiIDw8IHQ0LT52YWwgPDwgIiwiIDw8IHQ1LT52YWwgPDwgIlxuIjsKICBkZWxldGUgdDU7Cn0=