[ 
https://issues.apache.org/jira/browse/THRIFT-3513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15081476#comment-15081476
 ] 

James E. King, III commented on THRIFT-3513:
--------------------------------------------

I assume this is the result of looking at:
http://www.boost.org/doc/libs/1_60_0/doc/html/boost_lexical_cast/frequently_asked_questions.html

In addition, given int8_t is the C++ emitted type to store a thrift "byte", it 
might be more appropriate for the output to be hexadecimal, for example a byte 
containing 'K' could be output as "0x4B" or "0x4b".  The proposed change would 
output a byte containing 'K' as the number 75.  The original code should output 
the character 'K'.

I'm not sure I would consider this a bug at all.

> lib/cpp/src/thrift/TToString.h : the function "to_string" is not compatible 
> for int8_t(byte)
> --------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-3513
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3513
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>    Affects Versions: 0.9.3
>         Environment: centos6.4 , x84_64 , g++ 4.4.7
>            Reporter: phoneli
>
> In Source Code " lib/cpp/src/thrift/TToString.h " , 
> lines between 34~37 :
>          template <typename T>
>          std::string to_string(const T& t) {
>              return boost::lexical_cast<std::string>(t);
>          }
> the function "to_string" is not compatible for int8_t(byte) when using 
> std::cout or printf
> The Codes should change like this :
>         template <typename T>
>         std::string to_string(const T& t) {
>            return boost::lexical_cast<std::string>(t);
>         }
>         std::string to_string(const int_8 & t) {
>           return boost::lexical_cast<std::string>(static_cast<int>(t));
>         }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to