void CppGeneratorBase::GenStructureForBody(std::ofstream& stream,
const Structure& st) {
std::vector<std::pair<std::string, std::string>> v;
- const char ctor[] = "##::##() {}\n\n" \
- "##::##($$)\n" \
- " : $$ {}";
+ const char ctor[] = "<CLS_NAME>::<CLS_NAME>() {}\n\n" \
+ "<CLS_NAME>::<CLS_NAME>(<PARAMS>)\n" \
+ " : <INIT> {}";
for (const auto& i : st.GetElements()) {
std::pair<std::string, std::string> p;
v.push_back(p);
}
- GenTemplate(ReplaceAll(ctor, "##", st.GetID()), stream,
- [&]()->std::string {
- std::string str;
- for (auto& i : v) {
- str += i.first + " " + i.second;
-
- if (i != v.back())
- str += ", ";
- }
- return str;
- },
- [&]()->std::string {
- std::string str;
- for (auto& i : v) {
- str += i.second + "_(std::move(" + i.second + "))";
-
- if (i != v.back())
- str += ", ";
+ stream << ReplaceAll(ctor, {
+ { "<CLS_NAME>", st.GetID() },
+ { "<PARAMS>", Inject([&]() {
+ std::string str;
+ for (auto& i : v) {
+ str += i.first + " " + i.second;
+ if (i != v.back())
+ str += ", ";
+ }
+ return str;
+ })
+ },
+ { "<INIT>", Inject([&]() {
+ std::string str;
+ for (auto& i : v) {
+ str += i.second + "_(std::move(" + i.second + "))";
+ if (i != v.back())
+ str += ", ";
+ }
+ return str;
+ })
}
- return str;
- });
+ });
stream << NLine(2);
}