#include <iostream>
#include <ctime>
#include <cstdlib>
#include <vector>
using namespace std;
class TemplateElement {
public:
TemplateElement() {}
TemplateElement(vector<TemplateElement*> elements);
vector<TemplateElement*> getChildren();
virtual string toString() = 0;
private:
vector<TemplateElement*> m_vtChildren;
};
vector<TemplateElement*> TemplateElement::getChildren() {
return m_vtChildren;
}
class That : public TemplateElement {
public:
That() {}
virtual string toString() {return "";}
vector<string> elements();
private:
};
vector<string> That::elements() {
vector<TemplateElement*> children = getChildren();
cout << "passed" << endl;
vector<string> elements;
for (int i = 0, n = children.size(); i < n; i++) {
string text = children[i]->toString();
//text = trim(text);
vector<string> vsText;// = split(text);
for(int j=0, m=vsText.size(); j<m; ++j) {
elements.push_back(vsText[j]);
}
}
return elements;
}
int main() {
That* that = new That();
that->elements();
delete(that);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3RpbWU+CiNpbmNsdWRlIDxjc3RkbGliPgojaW5jbHVkZSA8dmVjdG9yPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKICAgIGNsYXNzIFRlbXBsYXRlRWxlbWVudCB7CiAgICBwdWJsaWM6CiAgICAgICAgVGVtcGxhdGVFbGVtZW50KCkge30KICAgICAgICBUZW1wbGF0ZUVsZW1lbnQodmVjdG9yPFRlbXBsYXRlRWxlbWVudCo+IGVsZW1lbnRzKTsKIAogICAgICAgIHZlY3RvcjxUZW1wbGF0ZUVsZW1lbnQqPiBnZXRDaGlsZHJlbigpOwogCiAgICAgICAgdmlydHVhbCBzdHJpbmcgdG9TdHJpbmcoKSA9IDA7CiAgICBwcml2YXRlOgogICAgICAgIHZlY3RvcjxUZW1wbGF0ZUVsZW1lbnQqPiBtX3Z0Q2hpbGRyZW47CiAgICB9OwogCgl2ZWN0b3I8VGVtcGxhdGVFbGVtZW50Kj4gVGVtcGxhdGVFbGVtZW50OjpnZXRDaGlsZHJlbigpIHsKCQlyZXR1cm4gbV92dENoaWxkcmVuOwoJfQogCiAKICAgIGNsYXNzIFRoYXQgOiBwdWJsaWMgVGVtcGxhdGVFbGVtZW50IHsKICAgIHB1YmxpYzoKICAgICAgICBUaGF0KCkge30KICAgICAgICB2aXJ0dWFsIHN0cmluZyB0b1N0cmluZygpIHtyZXR1cm4gIiI7fQogCiAgICAgICAgdmVjdG9yPHN0cmluZz4gZWxlbWVudHMoKTsKICAgIHByaXZhdGU6CiAKICAgIH07CiAKIAoJdmVjdG9yPHN0cmluZz4gVGhhdDo6ZWxlbWVudHMoKSB7CgkgICAgdmVjdG9yPFRlbXBsYXRlRWxlbWVudCo+IGNoaWxkcmVuID0gZ2V0Q2hpbGRyZW4oKTsKCSAgICBjb3V0IDw8ICJwYXNzZWQiIDw8IGVuZGw7CgkgICAgdmVjdG9yPHN0cmluZz4gZWxlbWVudHM7CiAKCSAgICBmb3IgKGludCBpID0gMCwgbiA9IGNoaWxkcmVuLnNpemUoKTsgaSA8IG47IGkrKykgewoJICAgICAgICBzdHJpbmcgdGV4dCA9IGNoaWxkcmVuW2ldLT50b1N0cmluZygpOwoJICAgICAgICAvL3RleHQgPSB0cmltKHRleHQpOwoJICAgICAgICB2ZWN0b3I8c3RyaW5nPiB2c1RleHQ7Ly8gPSBzcGxpdCh0ZXh0KTsKIAoJICAgICAgICBmb3IoaW50IGo9MCwgbT12c1RleHQuc2l6ZSgpOyBqPG07ICsraikgewoJICAgICAgICAgICAgZWxlbWVudHMucHVzaF9iYWNrKHZzVGV4dFtqXSk7CgkgICAgICAgIH0gCiAgICB9CiAKICAgIHJldHVybiBlbGVtZW50czsKfQogCiAKaW50IG1haW4oKSB7CglUaGF0KiB0aGF0ID0gbmV3IFRoYXQoKTsKCXRoYXQtPmVsZW1lbnRzKCk7CglkZWxldGUodGhhdCk7CglyZXR1cm4gMDsKfQ==