emitInclude()

in src/langs/cpp/combinator.js [258:286]


  emitInclude(emitter) {
    let includeFileSet = [];
    let includeList = this.includeList.concat(this.includeModelList);
    const selfInclude = `<${_toSnakeCase(this.scope)}/${_toSnakeCase(this.package)}.${this.config.header_ext}>`;

    if (includeList.length) {
      includeList.filter(item => item.includeFileName !== selfInclude).sort(function (a, b) {
        return a.includeFileName > b.includeFileName ? 1 : -1;
      }).forEach(include => {
        if (!_contain(includeFileSet, include.includeFileName)) {
          emitter.emitln(`#include ${include.includeFileName}`);
          includeFileSet.push(include.includeFileName);
        }
      });
      emitter.emitln();

      includeList = includeList.filter(item => !!item.using);
      const usingSet = [];
      if (includeList.length > 0) {
        includeList.forEach(item => {
          if (!_contain(usingSet, item.using)) {
            emitter.emitln(`using namespace ${item.using};`);
            usingSet.push(item.using);
          }
        });
        emitter.emitln();
      }
    }
  }