[
https://issues.apache.org/jira/browse/THRIFT-3921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15471337#comment-15471337
]
ASF GitHub Bot commented on THRIFT-3921:
----------------------------------------
Github user jeking3 commented on a diff in the pull request:
https://github.com/apache/thrift/pull/1083#discussion_r77873190
--- Diff: compiler/cpp/src/generate/t_cpp_generator.cc ---
@@ -541,6 +542,35 @@ void t_cpp_generator::generate_enum(t_enum* tenum) {
<< tenum->get_name() << "Values"
<< ", _k" << tenum->get_name() << "Names), "
<< "::apache::thrift::TEnumIterator(-1, NULL, NULL));" <<
endl << endl;
+
+ generate_enum_ostream_operator(tenum);
+}
+
+void t_cpp_generator::generate_enum_ostream_operator(t_enum* tenum) {
+ f_types_ << "inline std::ostream& operator<<(std::ostream& out, const ";
+ if (gen_pure_enums_) {
+ f_types_ << tenum->get_name();
+ } else {
+ f_types_ << tenum->get_name() << "::type";
--- End diff --
I'm sure it's nothing important in this context, but the recommended
signature for overloading operator << is to use a const ref for the value.
> C++ code should print enums as strings
> --------------------------------------
>
> Key: THRIFT-3921
> URL: https://issues.apache.org/jira/browse/THRIFT-3921
> Project: Thrift
> Issue Type: Improvement
> Components: C++ - Compiler
> Reporter: Vivek Jain
>
> THRIFT-2067 added {{operator<<}} to the C++ generated code, which is great,
> but enums are printed as numbers rather than their string representation. It
> would be great if the generated code printed them as a string instead. There
> might be some backwards-compatibility concerns (if users have already defined
> their own versions, then thrift's version would cause compile errors), not
> sure how important you guys think those are.
> Other thoughts/concerns? I am willing to work on a patch if no one else is
> able to work on it.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)