diff options
Diffstat (limited to 'tools/buildHeaders/header.cpp')
-rw-r--r-- | tools/buildHeaders/header.cpp | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/tools/buildHeaders/header.cpp b/tools/buildHeaders/header.cpp index fbae044..f9e06fb 100644 --- a/tools/buildHeaders/header.cpp +++ b/tools/buildHeaders/header.cpp @@ -583,7 +583,8 @@ namespace { void printEpilogue(std::ostream& out) const override { const Json::Value& enums = spvRoot["spv"]["enum"]; - out << "// Overload bitwise operators for mask bit combining\n\n"; + // Create overloaded operator| for mask types + out << "// Overload operator| for mask bit combining\n\n"; for (auto opClass = enums.begin(); opClass != enums.end(); ++opClass) { const bool isMask = (*opClass)["Type"].asString() == "Bit"; @@ -592,18 +593,8 @@ namespace { if (isMask) { const auto typeName = opName + styleStr(enumMask); - // Overload operator| - out << "inline " << typeName << " operator|(" << typeName << " a, " << typeName << " b) { return " << - typeName << "(unsigned(a) | unsigned(b)); }\n"; - // Overload operator& - out << "inline " << typeName << " operator&(" << typeName << " a, " << typeName << " b) { return " << - typeName << "(unsigned(a) & unsigned(b)); }\n"; - // Overload operator^ - out << "inline " << typeName << " operator^(" << typeName << " a, " << typeName << " b) { return " << - typeName << "(unsigned(a) ^ unsigned(b)); }\n"; - // Overload operator~ - out << "inline " << typeName << " operator~(" << typeName << " a) { return " << - typeName << "(~unsigned(a)); }\n"; + out << "inline " + typeName + " operator|(" + typeName + " a, " + typeName + " b) { return " + + typeName + "(unsigned(a) | unsigned(b)); }\n"; } } |