1 /*============================================================================= 2 Copyright (C) 2015 Kohei Takahshi 3 4 Distributed under the Boost Software License, Version 1.0. (See accompanying 5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 ==============================================================================*/ 7 #include <boost/fusion/container/deque/deque.hpp> 8 #include <boost/core/lightweight_test.hpp> 9 10 #define FUSION_SEQUENCE boost::fusion::deque 11 #include "nest.hpp" 12 13 /* deque has a few issues: 14 - sequence conversion constructor is explicit 15 - assignment sequence conversion has bug in base class 16 - c++11 direct assignment from lvalue has bug */ 17 template <typename T> 18 struct skip_issues 19 { 20 template <typename Source, typename Expected> operator ()skip_issues21 bool operator()(Source const& source, Expected const& expected) const 22 { 23 using namespace test_detail; 24 return 25 #if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) 26 run< can_construct<T> >(source, expected) && 27 run< can_implicit_construct<T> >(source, expected) && 28 run< can_rvalue_assign<T> >(source, expected) && 29 run< can_convert_using<can_construct>::to<T> >(source, expected) && 30 #else 31 run< can_copy<T> >(source, expected) && 32 #endif 33 run< can_construct_from_elements<T> >(source, expected); 34 } 35 }; 36 37 int main()38main() 39 { 40 test<skip_issues>(); 41 return boost::report_errors(); 42 } 43 44