Fix compile error with ambiguous ctor, close #11766.

When a) first elem is sequence b) second (and third) elem is(are) void*,
both of conversion ctor and forwarding ctor are candidate since SFINAE
expression has void* type.
This commit is contained in:
Kohei Takahashi
2015-12-01 01:14:52 +09:00
parent e9d489c07c
commit 12792a6c11
9 changed files with 30 additions and 22 deletions

View File

@ -8,6 +8,7 @@
#define FUSION_SET_09162005_1104
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/support/void.hpp>
#include <boost/fusion/support/is_sequence.hpp>
#include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/category_of.hpp>
@ -47,7 +48,6 @@
namespace boost { namespace fusion
{
struct void_;
struct fusion_sequence_tag;
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_SET_SIZE, typename T)>
@ -72,7 +72,7 @@ namespace boost { namespace fusion
template <typename Sequence>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
set(Sequence const& rhs
, typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0)
, typename boost::enable_if<traits::is_sequence<Sequence>, void_>::type = void_())
: data(rhs) {}
#include <boost/fusion/container/set/detail/cpp03/set_forward_ctor.hpp>