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

Mario Emmenlauer commented on THRIFT-2221:
------------------------------------------

Maybe its possible to have both options available with the help of defines? 
I.e. one could use a dedicated header with something like
{code}
#if USE_BOOST_SHARED_PTR
#include <boost/shared_ptr.hpp>
#define shared_ptr_namespace boost
#else
#include <memory>
#define shared_ptr_namespace std
#endif
{code}

And in the code change:
{code}
-boost::shared_ptr<TSocket> socket(new TSocket("127.0.0.1", port));
+shared_ptr_namespace::shared_ptr<TSocket> socket(new TSocket("127.0.0.1", 
port));
{code}

Admittedly, this does not read as fluent as the current code does, but I think 
it would
encapsulate the boost namespace quite nicely, and allow users to switch. 
Personally
I use std::shared_ptr everywhere in my code, and nowadays many users have a 
c++11
compiler?


> Generate c++ code with std::shared_ptr instead of boost::shared_ptr.
> --------------------------------------------------------------------
>
>                 Key: THRIFT-2221
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2221
>             Project: Thrift
>          Issue Type: Task
>          Components: C++ - Compiler
>    Affects Versions: 0.9.1
>         Environment: C++11 compilers with std::shared_ptr support
>            Reporter: Chris Stylianou
>            Priority: Minor
>              Labels: c++11, compiler, thrift
>
> Most modern compilers now have full support for std::shared_ptr when enable 
> with c++11 flags. It would be nice to have the option to generate code that 
> uses this instead of boost::shared_ptr. This would enable us to remove 
> another boost dependency, on the road to a dependency-free thrift library :)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to