#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <vector>
class MyClass {
public:
int specific_detail;
};
class MyClassDetail {
const MyClass &m_cls;
public:
MyClassDetail(const MyClass &src) : m_cls(src) {}
friend std::ostream& operator<<(std::ostream &out, const MyClassDetail &in) {
return out << in.m_cls.specific_detail;
}
};
int main() {
std::vector<MyClass> vec;
for(int i = 1; i <= 5; ++i) {
MyClass cls;
cls.specific_detail = i;
vec.push_back(cls);
}
std::ostringstream ss;
std::copy(vec.begin(), vec.end()-1, std::ostream_iterator<MyClassDetail>(ss, ", "));
ss << MyClassDetail(vec.back());
std::cout << ss.str();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8dmVjdG9yPgoKY2xhc3MgTXlDbGFzcyB7CnB1YmxpYzoKICAgIGludCBzcGVjaWZpY19kZXRhaWw7Cn07CgpjbGFzcyBNeUNsYXNzRGV0YWlsIHsKICAgIGNvbnN0IE15Q2xhc3MgJm1fY2xzOwpwdWJsaWM6CiAgICBNeUNsYXNzRGV0YWlsKGNvbnN0IE15Q2xhc3MgJnNyYykgOiBtX2NscyhzcmMpIHt9CiAgICBmcmllbmQgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSAmb3V0LCBjb25zdCBNeUNsYXNzRGV0YWlsICZpbikgewogICAgICAgIHJldHVybiBvdXQgPDwgaW4ubV9jbHMuc3BlY2lmaWNfZGV0YWlsOwogICAgfQp9OwoKaW50IG1haW4oKSB7CiAgICBzdGQ6OnZlY3RvcjxNeUNsYXNzPiB2ZWM7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IDU7ICsraSkgewogICAgICAgIE15Q2xhc3MgY2xzOwogICAgICAgIGNscy5zcGVjaWZpY19kZXRhaWwgPSBpOwogICAgICAgIHZlYy5wdXNoX2JhY2soY2xzKTsKICAgIH0KCXN0ZDo6b3N0cmluZ3N0cmVhbSBzczsKICAgIHN0ZDo6Y29weSh2ZWMuYmVnaW4oKSwgdmVjLmVuZCgpLTEsIHN0ZDo6b3N0cmVhbV9pdGVyYXRvcjxNeUNsYXNzRGV0YWlsPihzcywgIiwgIikpOwogICAgc3MgPDwgTXlDbGFzc0RldGFpbCh2ZWMuYmFjaygpKTsKICAgIHN0ZDo6Y291dCA8PCBzcy5zdHIoKTsKCXJldHVybiAwOwp9