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

Ben Craig commented on THRIFT-2242:
-----------------------------------

As of 10/28/2013 (today), GCC's C++11 support is still classified as 
experimental ( http://gcc.gnu.org/projects/cxx0x.html ) .  

In addition, for Linux, the version of GCC is generally set by the 
distribution.  RHEL 5 ships with GCC 4.1.  As long as clients still want to 
support RHEL 5, C++11 won't be an option for them.

Regarding compiler upgrades...

Suppose we set something in our config.h to detect whether to use boost:: or 
std:: for shared_ptr.  Now suppose our client has authored code that creates 
boost::shared_ptr objects, and passes them to the thrift libraries.  When that 
client moves from a C++03 compiler to a C++11 compiler, their code will break, 
because boost::shared_ptr cannot convert to std::shared_ptr.  Now, that client 
will either need to change their code, or find the appropriate pre-processor / 
auto-conf token to tweak to stay with boost::shared_ptr.

If boost is broken on a platform, chances are pretty good that Thrift is also 
broken on that platform, even if it used std:: constructs.

> Generate C++11 code
> -------------------
>
>                 Key: THRIFT-2242
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2242
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>    Affects Versions: 0.9.1
>            Reporter: Vitali Lovich
>
> unordered_map instead of map, unordered_set instead of set, noexcept instead 
> of throw() (unless the exact semantics of throw() are needed which seems 
> unlikely).
> It should use the shared_ptr implementation that the library is configured 
> with.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to