#include <iostream>
using namespace std;
#include <vector>
template<class T>
T* get_somthing(){
std::vector<T> vec = {1,2,3}; //T is trivally-copyable
static std::vector<T> static_vector;
static_vector = std::move(vec);
return static_vector.data();
}
int main() {
{
int * is = get_somthing<int>();
std::cout << is[0] << " " << is[1] << " " << is[2];
}
int * is = get_somthing<int>();
std::cout << is[0] << " " << is[1] << " " << is[2];
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2luY2x1ZGUgPHZlY3Rvcj4KCnRlbXBsYXRlPGNsYXNzIFQ+ClQqIGdldF9zb210aGluZygpewogICAgc3RkOjp2ZWN0b3I8VD4gdmVjID0gezEsMiwzfTsgLy9UIGlzIHRyaXZhbGx5LWNvcHlhYmxlCiAgICAKICAgIHN0YXRpYyBzdGQ6OnZlY3RvcjxUPiBzdGF0aWNfdmVjdG9yOwogICAgCiAgICBzdGF0aWNfdmVjdG9yID0gc3RkOjptb3ZlKHZlYyk7CiAgICAKICAgIHJldHVybiBzdGF0aWNfdmVjdG9yLmRhdGEoKTsKfQoKaW50IG1haW4oKSB7Cgl7CglpbnQgKiBpcyA9IGdldF9zb210aGluZzxpbnQ+KCk7CglzdGQ6OmNvdXQgPDwgaXNbMF0gPDwgIiAiIDw8IGlzWzFdIDw8ICIgIiA8PCBpc1syXTsKICAgIH0KCWludCAqIGlzID0gZ2V0X3NvbXRoaW5nPGludD4oKTsKCXN0ZDo6Y291dCA8PCBpc1swXSA8PCAiICIgPDwgaXNbMV0gPDwgIiAiIDw8IGlzWzJdOwoKCQoJcmV0dXJuIDA7Cn0=