diff --git a/packages/quicktype-core/src/language/CPlusPlus/CPlusPlusRenderer.ts b/packages/quicktype-core/src/language/CPlusPlus/CPlusPlusRenderer.ts index ec99e8029b..ecfd6d62a3 100644 --- a/packages/quicktype-core/src/language/CPlusPlus/CPlusPlusRenderer.ts +++ b/packages/quicktype-core/src/language/CPlusPlus/CPlusPlusRenderer.ts @@ -1373,6 +1373,11 @@ export class CPlusPlusRenderer extends ConvenienceRenderer { ], false, () => { + if (c.getProperties().size === 0) { + this.emitLine("(void)j;"); + this.emitLine("(void)x;"); + } + this.forEachClassProperty(c, "none", (name, json, p) => { const [, , setterName] = defined( this._gettersAndSettersForPropertyName.get(name), @@ -1562,6 +1567,10 @@ export class CPlusPlusRenderer extends ConvenienceRenderer { false, () => { this.emitLine("j = json::object();"); + if (c.getProperties().size === 0) { + this.emitLine("(void)x;"); + } + this.forEachClassProperty(c, "none", (name, json, p) => { const propType = p.type; cppType = this.cppType( diff --git a/test/languages.ts b/test/languages.ts index 6bcfd43611..1e7d486a4f 100644 --- a/test/languages.ts +++ b/test/languages.ts @@ -688,7 +688,8 @@ export const CPlusPlusLanguage: Language = { base: "test/fixtures/cplusplus", setupCommand: "curl -o json.hpp https://raw.githubusercontent.com/nlohmann/json/87df1d6708915ffbfa26a051ad7562ecc22e5579/src/json.hpp", - compileCommand: "g++ -O0 -o quicktype -std=c++17 main.cpp", + compileCommand: + "g++ -O0 -o quicktype -std=c++17 -Werror=unused-parameter main.cpp", runCommand(sample: string) { return `./quicktype "${sample}"`; },