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

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

Things a developer shouldn't say:

{quote}It should be fairly easy to to.{quote}

Not that it isn't fun, but oh boy is boost embedded into everything we have...

{noformat}
#include <boost/algorithm/string.hpp>
#include <boost/assert.hpp>
#include <boost/atomic.hpp>
#include <boost/chrono/duration.hpp>
#include <boost/config.hpp>
#include <boost/cstdint.hpp>
#include <boost/date_time/posix_time/posix_time_duration.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/date_time/posix_time/ptime.hpp>
#include <boost/detail/endian.hpp>
#include <boost/filesystem.hpp>
#include <boost/foreach.hpp>
#include <boost/format.hpp>
#include <boost/interprocess/smart_ptr/unique_ptr.hpp>
#include <boost/locale.hpp>
#include <boost/math/special_functions/fpclassify.hpp>
#include <boost/math/special_functions/sign.hpp>
#include <boost/move/unique_ptr.hpp>
#include <boost/mpl/list.hpp>
#include <boost/noncopyable.hpp>
#include <boost/numeric/conversion/cast.hpp>
#include <boost/program_options.hpp>
#include <boost/random.hpp>
#include <boost/scoped_array.hpp>
#include <boost/scoped_ptr.hpp>
#include <boost/scope_exit.hpp>
#include <boost/shared_array.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/smart_ptr.hpp>
#include <boost/static_assert.hpp>
#include <boost/test/auto_unit_test.hpp>
#include <boost/test/test_tools.hpp>
#include <boost/test/unit_test.hpp>
#include <boost/test/unit_test_suite.hpp>
#include <boost/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/once.hpp>
#include <boost/thread/thread.hpp>
#include <boost/tokenizer.hpp>
#include <boost/tr1/functional.hpp>
#include <boost/type_traits.hpp>
#include <boost/type_traits/is_convertible.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/utility.hpp>
#include <boost/version.hpp>
{noformat}

There are places we could do much better; our current mutex implementation 
isn't even polymorphic (there's no base class) - we just compile in different 
classes.  We could have a single Mutex class for std and boost that uses the 
same technique as this ticket.  I don't see us being divorced from boost any 
time soon... so we have to focus on making our interfaces use as many C++11 
compatible items as possible, such as this ticket does.

> 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: Improvement
>          Components: C++ - Compiler
>    Affects Versions: 0.9.1
>         Environment: C++11 compilers with std::shared_ptr support
>            Reporter: Chris Stylianou
>            Assignee: James E. King, III
>              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