Subject: Re: [boost] question about C++11 guidelines
From: Ivan Le Lann (ivan.lelann_at_[hidden])
Date: 2012-05-04 04:53:14
----- Mail original -----
> De: "Doug Gregor" <doug.gregor_at_[hidden]>
> Ã: boost_at_[hidden]
> EnvoyÃ©: Jeudi 3 Mai 2012 18:27:31
> Objet: Re: [boost] question about C++11 guidelines
> On Wed, May 2, 2012 at 3:01 PM, Eric Niebler <eric_at_[hidden]>
> > Say I'm rewriting an existing Boost library and targeting C++11
> > users. I
> > plan to ship C++03 and C++11 versions of my library side-by-side,
> > so
> > back-compat isn't an issue for the new code. Is there a reason to
> > prefer
> > using Boost's versions of utilities like enable_if, type traits,
> > integral constant wrappers (e.g. mpl::int_), tuples, etc., over the
> > now-standard ones?
> > I'm leaning toward using std:: where I can, and falling back on
> > Boost's
> > versions only when there is a compelling reason.
> Boost in C++11 should use the std:: facilities.
Obviously but the problem is what "use" means. It's not because you
call it "boost::shared_ptr" that it does not use, alias or wrap C++11.
And boost::shared_ptr and boost::enable_if may be new beasts in the future.
If you wrote std::shared_ptr and std::enable_if everywhere in your code,
you won't be able to benefit from that.
Typically, today, you cannot have Boost use Boost.Container by default
because you see std::vector and std::string in all Boost code ...