[Deque] Make the from-sequence constructor SFINAE friendly

This commit is contained in:
Louis Dionne
2015-07-24 22:11:53 +02:00
parent 00823cc315
commit 7fdb3201fa
3 changed files with 20 additions and 1 deletions

View File

@ -149,7 +149,8 @@ namespace boost { namespace fusion
template <typename Sequence>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit deque(Sequence const& seq
, typename disable_if<is_convertible<Sequence, Head> >::type* /*dummy*/ = 0)
, typename disable_if<is_convertible<Sequence, Head> >::type* /*dummy*/ = 0
, typename enable_if<traits::is_sequence<Sequence> >::type* /*dummy*/ = 0)
: base(base::from_iterator(fusion::begin(seq)))
{}

View File

@ -86,6 +86,7 @@ project
[ run sequence/deque_copy.cpp : : : : ]
[ run sequence/deque_iterator.cpp : : : : ]
[ run sequence/deque_hash.cpp : : : : ]
[ run sequence/deque_is_constructible.cpp : : : : ]
[ run sequence/deque_make.cpp : : : : ]
[ run sequence/deque_misc.cpp : : : : ]
[ run sequence/deque_move.cpp : : : : ]

View File

@ -0,0 +1,17 @@
/*=============================================================================
Copyright (c) 2015 Louis Dionne
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#include <type_traits>
#include <boost/fusion/include/deque.hpp>
struct Dummy { };
// Make sure deque's constructor is SFINAE-friendly.
static_assert(!std::is_constructible<boost::fusion::deque<int>, Dummy const&>::value, "");
int main() { }