
ivan.lelann@free.fr writes:
----- Mail original -----
De: "Eric Niebler" <eric@boostpro.com> ?: "Boost mailing list" <boost@lists.boost.org> Envoy?: Jeudi 3 Mai 2012 00:01:52 Objet: [boost] question about C++11 guidelines
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.
What about this ?
1) If Foo is a Boost library, it should use boost::shared_ptr. 2) boost::shared_ptr may be an alias/using/... to std::shared_ptr. But this is up to Boost.SmartPtr, not to Boost.Foo.
My experience with opaque aliasing of std and boost components is rather bad. There are some subtle differences (e.g. reference_wrapper as a functor, mem_fn and proxies, tuple operator<<, hash), naming incompatibilities, and you always need to test both configurations. It isn't worth the trouble in my experience.