diff options
author | Clement Courbet <courbet@google.com> | 2016-02-19 08:24:29 +0100 |
---|---|---|
committer | Clement Courbet <courbet@google.com> | 2016-02-19 08:24:29 +0100 |
commit | b3d802d21534e97e571e0afa36c68323353e260d (patch) | |
tree | b23917a4e441bac4b5e8869151dd54d8a96935c9 /src | |
parent | 9ab11c6561abd5fe997a999f21799d160b0d14cf (diff) | |
download | protobuf-b3d802d21534e97e571e0afa36c68323353e260d.tar.gz protobuf-b3d802d21534e97e571e0afa36c68323353e260d.tar.bz2 protobuf-b3d802d21534e97e571e0afa36c68323353e260d.zip |
Make cpp generated enum constants constexpr when Options::proto_h is
specified.
Diffstat (limited to 'src')
-rw-r--r-- | src/google/protobuf/compiler/cpp/cpp_enum.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/google/protobuf/compiler/cpp/cpp_enum.cc b/src/google/protobuf/compiler/cpp/cpp_enum.cc index 1a11bce8..5ee6f000 100644 --- a/src/google/protobuf/compiler/cpp/cpp_enum.cc +++ b/src/google/protobuf/compiler/cpp/cpp_enum.cc @@ -178,12 +178,13 @@ void EnumGenerator::GenerateSymbolImports(io::Printer* printer) { map<string, string> vars; vars["nested_name"] = descriptor_->name(); vars["classname"] = classname_; + vars["constexpr"] = options_.proto_h ? "constexpr " : ""; printer->Print(vars, "typedef $classname$ $nested_name$;\n"); for (int j = 0; j < descriptor_->value_count(); j++) { vars["tag"] = EnumValueName(descriptor_->value(j)); printer->Print(vars, - "static const $nested_name$ $tag$ = $classname$_$tag$;\n"); + "static $constexpr$const $nested_name$ $tag$ = $classname$_$tag$;\n"); } printer->Print(vars, @@ -237,6 +238,7 @@ void EnumGenerator::GenerateDescriptorInitializer( void EnumGenerator::GenerateMethods(io::Printer* printer) { map<string, string> vars; vars["classname"] = classname_; + vars["constexpr"] = options_.proto_h ? "constexpr " : ""; if (HasDescriptorMethods(descriptor_->file())) { printer->Print(vars, @@ -287,7 +289,7 @@ void EnumGenerator::GenerateMethods(io::Printer* printer) { for (int i = 0; i < descriptor_->value_count(); i++) { vars["value"] = EnumValueName(descriptor_->value(i)); printer->Print(vars, - "const $classname$ $parent$::$value$;\n"); + "$constexpr$const $classname$ $parent$::$value$;\n"); } printer->Print(vars, "const $classname$ $parent$::$nested_name$_MIN;\n" |