mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-23 17:17:23 +02:00
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:
@ -23,6 +23,7 @@
|
|||||||
#include <boost/fusion/container/list/detail/value_at_impl.hpp>
|
#include <boost/fusion/container/list/detail/value_at_impl.hpp>
|
||||||
#include <boost/fusion/container/list/detail/empty_impl.hpp>
|
#include <boost/fusion/container/list/detail/empty_impl.hpp>
|
||||||
#include <boost/type_traits/is_convertible.hpp>
|
#include <boost/type_traits/is_convertible.hpp>
|
||||||
|
#include <boost/type_traits/is_base_of.hpp>
|
||||||
#include <boost/utility/enable_if.hpp>
|
#include <boost/utility/enable_if.hpp>
|
||||||
#include <boost/fusion/support/sequence_base.hpp>
|
#include <boost/fusion/support/sequence_base.hpp>
|
||||||
#include <boost/fusion/support/is_sequence.hpp>
|
#include <boost/fusion/support/is_sequence.hpp>
|
||||||
@ -79,6 +80,7 @@ namespace boost { namespace fusion
|
|||||||
, typename boost::enable_if<
|
, typename boost::enable_if<
|
||||||
mpl::and_<
|
mpl::and_<
|
||||||
traits::is_sequence<Sequence>
|
traits::is_sequence<Sequence>
|
||||||
|
, mpl::not_<is_base_of<cons, Sequence> >
|
||||||
, mpl::not_<is_convertible<Sequence, Car> > > // use copy to car instead
|
, mpl::not_<is_convertible<Sequence, Car> > > // use copy to car instead
|
||||||
>::type* /*dummy*/ = 0
|
>::type* /*dummy*/ = 0
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user