diff options
author | Jens Geyer <jensg@apache.org> | 2014-08-03 19:13:01 +0200 |
---|---|---|
committer | Jens Geyer <jensg@apache.org> | 2014-08-03 19:14:11 +0200 |
commit | a0b86741169b8ef0a1e663154db447517bd89b0b (patch) | |
tree | 250c0e62e556a0cbeba175656f191f721757b9cd /compiler/cpp | |
parent | f341c590dcaa99fad8e768e1e8f06f19179bb737 (diff) | |
download | thrift-a0b86741169b8ef0a1e663154db447517bd89b0b.tar.gz |
THRIFT-2639 c_glib: Expose as properties members of generated structs
Client: C-glib
Patch: Simon South
Fixes error: 'to_string' is not a member of 'std' for non-C++11 conformant compilers
Diffstat (limited to 'compiler/cpp')
-rw-r--r-- | compiler/cpp/src/generate/t_c_glib_generator.cc | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/compiler/cpp/src/generate/t_c_glib_generator.cc b/compiler/cpp/src/generate/t_c_glib_generator.cc index 807b62804..feef57513 100644 --- a/compiler/cpp/src/generate/t_c_glib_generator.cc +++ b/compiler/cpp/src/generate/t_c_glib_generator.cc @@ -2448,10 +2448,7 @@ void t_c_glib_generator::generate_object(t_struct *tstruct) { string param_spec_function_name = "g_param_spec_int"; string min_value; string max_value; - string default_value = - std::to_string((member_value != NULL) ? - member_value->get_integer() : - 0); + ostringstream default_value; switch (base_type) { case t_base_type::TYPE_BYTE: @@ -2479,9 +2476,6 @@ void t_c_glib_generator::generate_object(t_struct *tstruct) { param_spec_function_name = "g_param_spec_double"; min_value = "-INFINITY"; max_value = "INFINITY"; - if (member_value != NULL) { - default_value = std::to_string(member_value->get_double()); - } break; default: @@ -2491,6 +2485,15 @@ void t_c_glib_generator::generate_object(t_struct *tstruct) { break; } + if (member_value != NULL) { + default_value << + (base_type == t_base_type::TYPE_DOUBLE ? + member_value->get_double() : + member_value->get_integer()); + } else { + default_value << "0"; + } + args_indent += string(param_spec_function_name.length() + 2, ' '); f_types_impl_ << param_spec_function_name << " (\"" << member_name << "\"," << endl << @@ -2498,7 +2501,7 @@ void t_c_glib_generator::generate_object(t_struct *tstruct) { args_indent << "NULL," << endl << args_indent << min_value << "," << endl << args_indent << max_value << "," << endl << - args_indent << default_value << "," << endl << + args_indent << default_value.str() << "," << endl << args_indent << "G_PARAM_READWRITE));" << endl; } |