Prevent use of conversion ctor for copy purpose.

Some compilers elect conversion ctor for copy purpose in implicitly defined copy ctor with derived class.
This commit is contained in:
Kohei Takahashi
2015-07-01 02:25:13 +09:00
parent 6fe816fe89
commit c0fcaae951

View File

@ -23,6 +23,7 @@
#include <boost/fusion/container/list/detail/value_at_impl.hpp>
#include <boost/fusion/container/list/detail/empty_impl.hpp>
#include <boost/type_traits/is_convertible.hpp>
#include <boost/type_traits/is_base_of.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/is_sequence.hpp>
@ -79,6 +80,7 @@ namespace boost { namespace fusion
, typename boost::enable_if<
mpl::and_<
traits::is_sequence<Sequence>
, mpl::not_<is_base_of<cons, Sequence> >
, mpl::not_<is_convertible<Sequence, Car> > > // use copy to car instead
>::type* /*dummy*/ = 0
)